创建一个Person类数据成员:name,age 成员函数:set 函数用来初始化数据成员:getName、 getAge 函数,分别用来获取数据成员信息; 主函数创建一个 Person 类的对象 p,调用 set 函数实现初始化。对 get 函数的返回值进行打印输出
时间: 2024-03-06 11:51:08 浏览: 53
好的,下面是你需要的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Person {
private:
string name;
int age;
public:
void set(string n, int a) {
name = n;
age = a;
}
string getName() {
return name;
}
int getAge() {
return age;
}
};
int main() {
Person p;
p.set("张三", 20);
cout << "姓名:" << p.getName() << endl;
cout << "年龄:" << p.getAge() << endl;
return 0;
}
```
运行结果如下:
```
姓名:张三
年龄:20
```
相关问题
1)设计类Person,包含2个成员变量name和age,name默认是小杨,age默认是18。可通过构造函数进行初始化; (2)类Person实现了__repr__函数,输出的格式为“姓名:XXX,年龄:XXX岁" (3)类Person实现类的成员方法 getname,getage,setage,分别实现对2个成员变量的访问控制 (4) 设计类Person的派生类 Student,增加了studentID,studentClass两个成员变量,需要在构造函数中初始化; (5)类 Student也实现了__repr__函数,输出的格式为“姓名:XXX,年龄:XXX岁,学号:XXX,班级:XXX" (6)编写测试代码,测试功能
好的,下面是设计的代码实现,其中包括了Person类和Student类的定义,以及测试代码的编写:
```python
class Person:
def __init__(self, name='小杨', age=18):
self.name = name
self.age = age
def __repr__(self):
return f'姓名:{self.name},年龄:{self.age}岁'
def getname(self):
return self.name
def getage(self):
return self.age
def setage(self, age):
self.age = age
class Student(Person):
def __init__(self, name='小杨', age=18, studentID='', studentClass=''):
super().__init__(name, age)
self.studentID = studentID
self.studentClass = studentClass
def __repr__(self):
return f'姓名:{self.name},年龄:{self.age}岁,学号:{self.studentID},班级:{self.studentClass}'
# 测试代码
if __name__ == '__main__':
p1 = Person()
print(p1)
p2 = Person('小王', 20)
print(p2)
p2.setage(22)
print(p2.getage())
s1 = Student('小李', 19, '001', '一班')
print(s1)
```
测试结果如下:
```
姓名:小杨,年龄:18岁
姓名:小王,年龄:20岁
22
姓名:小李,年龄:19岁,学号:001,班级:一班
```
希望能够帮助到你!
java1. 定义一个Person类,包含属性name、age。 2. 使用反射的方式创建一个实例、调用构造函数初始化name、age。使用反射方式调用setName方法对姓名进行设置,不使用setAge方法直接使用反射方式对age赋值。
代码如下:
```java
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public static void main(String[] args) throws Exception {
Class<Person> clazz = Person.class;
Constructor<Person> constructor = clazz.getConstructor();
Person person = constructor.newInstance();
Field nameField = clazz.getDeclaredField("name");
nameField.setAccessible(true);
nameField.set(person, "小明");
Field ageField = clazz.getDeclaredField("age");
ageField.setAccessible(true);
ageField.setInt(person, 18);
System.out.println(person.getName() + " " + person.getAge());
}
}
```
解释一下代码:
首先我们定义了一个Person类,包含了name和age两个属性,以及相应的构造函数和setter/getter方法。
然后在main方法中,我们使用反射的方式获取Person类的构造函数,创建一个实例。
接着我们使用反射的方式获取name和age两个属性,并将它们设为可访问的。
最后,我们使用反射的方式设置name和age两个属性的值,然后输出结果即可。
需要注意的是,对于int类型的属性,我们不能直接使用set方法来设置属性值,而应该使用setInt方法。
阅读全文