java面向对象

一、类与对象的创建

 

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。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值