1 优点
2 类与对象
类 自定义的类 一系列事物的模板,一些列事物的共性定义为 自定义类|模板类
对象 现实生活中真实存在的事物 需要根据模板类构建对象
3 自定义类
成员变量 属性 名称(一般不赋值)
成员方法 不被static修饰
public class 类名{
//成员变量
修饰符 数据类型 变量名 =赋值;(一般不赋值)
//成员方法
public 返回值类型|void 方法名(参数列表){
...
}
}
例如:
public class Phone01 {
String color; //成员变量
double size;
public void call(){ //成员方法
System.out.println("打电话");
}
}
4 自定义类引用
a) 导包 (java.lang包的类 同包下的类 不需要导包)
b) 创建类型的变量(new) 也就是创建了对象
类中可以创建多个对象
匿名对象在在当前行作用 new Car().run();执行匿名的Car对象中Run方法
c) 根据变量使用功能
变量.功能名字()
变量.属性名字
print对象的结果是对象的存储地址
public class Test {
public static void main(String[] args){
Phone01 phone=new Phone01(); //创建对象
phone.color="黑色"; //使用成员变量
phone.call( phone.color ); //使用成员方法
}
}
5 构造器
用来初始化对象的信息的方法 采用new创建对象
修饰符 类名([参数列表]){ //名称与类名一致 无返回类型的修饰
.... //可以有return
}
修饰符不能是 static final abstract
调用构造器需要随new一起使用,无法调用
Dog dog=new Dog("张","犬","黄"); //调用Dog类的构造器 输入三个参数
若无构造器,系统在调用类时自动生成一空构造
若已自定义构造器,系统不再自动提供
构造器是方法, 构造器存在重载
1 this关键字
用途1 在构造器中调用本类中的其他构造器
this是指当前对象的地址
用途2 用于区分成员变量和局部变量
用法: this.成员变量
class Person{
String name;
public Person() {
System.out.print("空构造"); //空构造
}
public Person(String name,int age) {
this(); //调用了空构造
this.name=name; //this.name类中的name
} //后边的name为构造器接收的name
用户 ID 和用户密码必须写,如果email缺省时 email地址是用户 ID 加上字符串"@http://gameschool.com"。
String ID;
String email;
String password;
public
this( ID , password,ID+"@http://gameschool.com ");
}
public
this.ID=ID;
this.password=password;
this.email=email;
} 构造调用
2 内存分析
new做3件事情:
1.堆中开辟空间,成员属性跟随对象进入堆内存并附默认值
2.调用构造器为对象初始化信息
3.将地址返回给引用
内存分析1
内存分析2