class Summarize { // Summarize 总结
public static void main(String[] args) {
Student s1 = new Student();
s1.show();
Student s2 = new Student("张三",25);
s2.show();
s2.setName("李四");
s2.setAge(24);
s2.show();
}
}
class Student {
private String name; //成员变量,且被private私有化了
private int age;
public Student() { //空参构造
}
public Student(String name,int age) { //有参构造
this.name = name;
this.age = age;
}
public void setName(String name) { //设置姓名:这就能在本类之外给name赋值了
this.name = name;
}
public String getName() { //获取姓名:只是起到一个桥梁的作用
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void show() {
System.out.println("姓名:" + name + ", 年龄" + age);
}
}
/*
写一个学生类
成员变量:名字name,年龄age
空参构造和有参构造
show方法,输出一段话
*/
/*
构造方法的作用是给对象的数据(成员变量)进行初始化;
格式:无参构造:修饰符 类名(){}
有参构造:修饰符 类名(参数类表){}
构造方法既然是方法那么它也可以重载:
重载的要求也和方法的一样,就是方法名相同,参数列表不同(参数个数不同,类型不同,顺序不同),与返回值无关.
而构造方法是没有返回值的
构造方法分为无参构造和有参构造,无参构造是在创建对象的时候给对象的数据一个默认初始化值,而有参构造是在创
建对象的时候给对象数据赋值;在类中如果没有定义构造方法的话,系统会默认给出一个无参构造(当然它是
看不到的啦),而如果在类中定义了一个构造方法的话,创建对象的时候就必须按照构造方法的参数类型来创建.
创建一个对象的步骤:
* Student s = new Student();
* 1,Student.class加载进内存
* 2,声明一个Student类型引用s
* 3,在堆内存创建对象,
* 4,给对象中属性默认初始化值
* 5,属性进行显示初始化
* 6,构造方法进栈,对对象中的属性赋值,构造方法弹栈
* 7,将对象的地址值赋值给s
private的作用是与public相对立的
private是私有的而public是公有的
被private修饰过的成员变量和成员方法只能在本类中使用
(在上面的例子中,String name和int age原本是公开的,是可以在main方法中直接赋值调用的,但被private私有化
之后就不可以了,只能在本类中被赋值调用,因此就要用到被public修饰的setXxx方法去给成员变量赋值,但是被
赋值之后它还是不能在本类之外被调用的,因此就要用到被public修饰的getXXX方法去获取成员变量的值)
this是指哪个对象调用的方法,就指的是哪个对象中的成员
*/
|
|