#对象创建过程
- new 关键字创建对象,为对象分配空间,为成员变量赋初值(0)
- 调用构造方法,初始化新的对象,用户如果没有构造方法,系统会默认初始化(*注)
- 构造方法返回此对象的地址
*注:实例化对象时,如果没有用户的构造方法,系统默认给成员变量int double等数字型赋值为0,字符串等引用数据类型初始值为null,字符类型初始值为\u0000,boolean 为false。
#构造方法的重载
double radius;
Circle(){ //第一种
this.radius=1.0; //这行如果不写,那么系统会给变量radius赋默认值0
}
Circle(double r){ //第二种
this.radius=r;
}
- 在创建对象时,如果这样写:
Circle c=new Circle();
,就会调用第一种,并且在创建c这个圆(对象)时会赋给radius的值为1.0 - 在创建对象时,如果这样写:
Circle c=new Circle(2.5);
,就会调用第二种,并且在创建c这个圆(对象)时会赋给radius的值为2.5
以上就是构造方法的重载
#如何使用对象的成员变量
对象名.成员变量名
例:c1.radius
#this的具体讲解
this就是当前对象的成员变量的地址
课上的Person源代码
Person.java内的代码
package p;
public class Person {
String name;
int age;
String gender;
void speak() {
System.out.println("我是"+name+"我是个"+gender+"生"+"我今年"+age+"岁了");
}
}
Person1.java内的代码
package p;
import java.util.*;
public class People1 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
Person xxa=new Person();
System.out.println("请输入姓名");
xxa.name=in.nextLine();
System.out.println("请输入性别");
xxa.gender=in.nextLine();
System.out.println("请输入年龄");
xxa.age=in.nextInt();
xxa.speak();
}
}