类
类:是用来描述现实世界的事物(类是描述一组事物的属性和行为的集合)
类的成员:
成员方法
成员变量:
注意事项:什么时候将变量定义为成员变量--->当该变量是面熟该事物的一组属性的时候
格式: 类名 对象名=new 类名();
1.标准类:
写法: 1) 成员变量私有化;
- 提供无参/有参构造;
快捷键: alt+shift+s+c:无参构造方法
alt+shift+s+o:生成有参构造方法
- 提供setXXX/getXXX()方法.
2.匿名类:没有名字的对象(实际开发中,在接口中,抽象类中用的比较多)
写法: new 类名()
优点: 1) 一般调用一次即可,不适合调用多次;
2)调用完毕后,立即从内存释放掉,及时被GC(垃圾回收器)回收;
3)匿名对象可以作为参数进行传递
3.抽象类:一个类中有抽象方法,那么这个类就是抽象类
格式:
abtract class 类名();(无方法体)
注意:1)如果一个类中有抽象方法那么这个类就是抽象类
2)抽象方法的类必须声明为抽象类,但抽象类可以不包含任何抽象方法
特点:
- 抽象类不能实例化;
- 子类必须重写父类的抽象方法(理解:死记硬背)
抽象类的子类:
- 抽象类的子类如果是抽象类,则没有意义
- 抽象类多态:
格式:父类名 对象名=new 子类名()
子类是具体类的话,对象的创建由子类完成
抽象类成员的特点:
成员变量:可以是变量,也可以是常量
构造方法:所有的构造方法都是给对象进行初始化:1)默认初始化2)显示初始化
成员方法:可以是抽象方法也可以是非抽象方法
4.内部类:在一个类中除了可以定义成员变量,成员方法,还可以定义类,这样的类被称做成员内部类
1)成员内部类
特点:
a.在成员内部类中可以访问外部类的所有成员;
b.通过外部类去访问内部类,语法格式:
外部类名.内部类名 变量名=new 外部类名().new内部类名();
2)静态内部类:可以使用static关键字来修饰一个成员内部类,该内部类被称做静态内部类,它可以在不创建外部对象的情况下被实例化
创建静态内部类对象的具体语法格式:
外部类名.内部类名 变量名=new 外部类名.内部类名();
a.在静态内部类中只能访问外部类的静态方法;
b.在静态内部类中可以定义静态成员,而在非静态的内部类中不允许定义静态成员
3)方法内部类:方法内部类是指在成员方法中定义的类,只能在当前方法中被使用
5.匿名内部类:
书写格式:
new 父类名 (参数列表) 或 父接口(){
//匿名内部类实现部分
}