●●创建一个类文件中,必须有一个是public的
1.存储数据 数据类
2.完成特定功能的 功能类
3.封装数据 常用类
●●属性/成员变量:存储数据
注意:有内存才能存储数据
定义一个类 这个类 不实际存在 =没有内存
成员变量定义/声明时,不能初始化,没有内存空间
●●当定义一个类时,系统不会分配内存空间
当需要用这个类创建对象的时候 这个类就会被加载到内存里
●●设置属性的访问权限,默认protected
public 公有的 自己/子类/外部也可以访问
private 私有的 外部无法访问 子类无法继承 自己可以访问
protected 受保护的 自己/子类/外部也可以访问
●●构造函数
对象的创建是在这个类的构造函数里面构造的
如果在构造对象的同时,需要给他某些属性一些初始值(额外的处理)
●●Person的父类就是Object
●●创建对象的步骤:
1.将需要创建的类加载到内存中 得到类对象
2.通过类对象里面的默认提供的构造函数创建这个类的一个对象
3.a.如果不需要做任何处理 直接返回创建对象
b.如果需要做额外的处理 必须自己重写构造函数
●●如何定义构造函数
Class public 类名(参数){
}
●●优化的两个方向
1.让程序运行更快
2.让代码更少
●●尽量不要直接去访问一个属性变量
定义类的时候不要把属性直接暴露给外部
访问权限 private public protected
需要提供间接的访问方式(获取属性的值/设置属性的值)setter/get
●●类方法:静态方法 static
不需要实例化对象,直接用这个类来调用的方法
任何地方都可以调用
1.方法调用很方便->工具类里面的方法通常都是静态方法
2.类方法中不能调用对象的属性或者方法
实例方法:对象方法
必须创建这个类的对象,用对象用的方法
●●所有的类都是直接或者间接继承于Object
构造方法
toString()
当使用print输出一个对象时,默认会调用这个对象的toString方法
如果输出时只想按照自己的想法来输出,需要重写toString方法
使用extends 实现继承
只能单继承,不能多继承
●●如果父类的方法,子类需要重新做,称为重写父类的方法
需要在方法上添加一个@Override注解
●●重载:同一个方法多种实现
方法名必须相同,参数个数或者参数类型不同
重写:重新实现父类的方法 @Override
子类的方法和父类的方法一样
●●类与类之间的关系
1.继承
2.组合
●●设计类的时候:低耦合
●●supper:父类
this:表示当前的这个对象
●●如果父类有非默认的构造方法,
子类必须实现所有的父类构造方法
●●多态:多种形态 同一个对象有多种表达形式
使用父类接受子类对象
注意:当需要调用对象本身的方法时,必须转化为自己的原来的对象类型
如果只是需要调用父类里面继承下来的方法,那么可以不用转化成原来对象类型
●●类的组成部分:成员变量 方法 内部类
●●内部类:在一个类的内部定义一个类
如果某个类不希望外部能够访问,就可以定义在其他类的内部
注意:普通的内部类作为外部类的一部分,可以访问外部类的所有内容
静态内部类不能访问外部类的普通成员(成员变量、实例方法、普通内部类)



