
一、类与对象的创建
1.使用new关键字创建对象
Person person = new Person("Jingjing");
类的创建:

对象创建:

二、构造器详解

一个类即使什么也不写,也会存在一个构造方法
即便前面的类是空的,仍然可以使用new方法创建一个对象
1.无参构造器和有参构造器

2.快捷方法
alt + insert :生成有参构造 alt +insert +seleteNone(弹出的中间):生成无参构造


三、封装

1.属性私有

2.getset

在main方法中直接调用输出

3.封装的意义:
1.提高程序的安全性,保护数据 2.隐藏代码的实现细节 3.统一接口 4.提高系统可维护性
4.快捷键
alt+insert:可生成getset方法
四、继承 --extends
Java中只有单继承,没有多继承,但支持多重继承

1.分为两个类:子类和父类-----子类继承父类
子类继承了父类就会拥有父类的全部方法

2.父类的类型:
public 公开的 private 私有的--这种类型子类不能直接继承,但可以通过方法调用继承 default 默认 protected 保护继承
父类写了有参构造,子类的无参构造无法继承,只能去调用父类的无参
3.在java中,所有的类都直接或间接继承object类

查看类继承快捷键:F4
打不开的可以 点击标题栏中的Navigate-->Type Hierarchy4.yinca
4.隐藏代码--Student student1 = new Student1 :输出时会调用父类的无参构造

方法继承例子:

五、super详解
super注意点:
1.super调用父类的构造方法,必须要在子类构造方法的第一行,否则报错
2.super 必须只能出现在子类的方法或者构造方法中
3.super和this不能同时调用构造方法
Vs this:
代表的对象不同
this:本身调用者这个对象
super:代表父类对对象的应用
前提:
this:没有继承也可以使用
super:只能在继承条件下才可以使用
构造方法:
this(); 本类的构造
super(); 父类的构造
六、方法重写
重写:需要有继承关系,子类重写父类的方法 1.方法名必须相同 2.参数列表必须相同 3.修饰符:范围可以扩大但不能缩小 public>protected>default>private 4.抛出的异常:范围可以被缩小但不能扩大 重写:子类和父类的方法一致,方法体不同! 为什么要重写: 1.父类的功能,子类不一定需要,或者不一定满足 alt+insert :override

七、多态
/**多态注意事项 * 1.多态是方法的多态,属性没有多态 * 2.父类和子类,有类型转换异常 ClassCastException * 3.存在条件:继承关系,方法需要重写,父类引用指向子类对象 不能进行多态的方法: 1.static 方法:属于类,不属于实例 2.final 常量 3.private方法 因为他们无法进行重写

八、、instanceof和类型转换
1.instanceof ---要看他们的继承关系(存在true,不存在flase)

同级比较会报错

/** System.out.println(X instanceof Y);是否可以进行编译 * 要看他们之间有无父子关系,没有就会报错 */
2.类型转换
转换小结:
1.父类引用指向子类的对象 Person person = student; 2.把子类转换为父类,向上转换 3.把父类转换为子类,向下转型,强制转换 4.方便方法的调用,减少重复代码
九、static关键字详解
1.private static int age; //静态变量 private double score; //非静态变量
2.//非静态方法
public void run(){
go();//非静态方法可以调用静态方法里面的内容}
//静态方法
public static void go()
{}
----静态方法可以直接调用,也可以类调用
go();
Student.go();
//run();//不能调用普通方法 
3.如果类被final定义了,就不能被继承了

4.代码块与构造方法

5.静态导入包

十、抽象类---类是单继承的
抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。

抽象类可以有构造方法,只是不能直接创建抽象类的实例对象,在继承了抽象类的子类中通过super()或super(参数列表)调用抽象类中的构造方法。
十一、接口的定义与实现
interface--接口

接口作用: 1.约束 2.定义一些方法,让不同的人实现 3.抽象类 public abstract 4.常量 public static final 5.接口不能被实例化(new),接口中没有构造方法 6.implements可以实现多个接口
十二、内部类

一个类中只有有一个public class,但是可以有无数个class。
版权声明:本文为JINGJID原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。