小伙的java之旅(4)

时间过得好快,不知不觉学习java都第四周了。这周主要把面向对象大概都了解了一下。大概内容有:隐式参数,继承,重写,final,封装,多态,抽象类,接口和内部类。接下来就一个点一个点的总结一下。

this (隐式参数)。this指向当前对象

方法里面的隐式参数一共有俩个,this和super。这里首先介绍this。

1.在普通方法中,this总是指向调用该方法的对象。
2.在构造方法中,this总是指向正要初始化的对象。
3.this.name (实参) = name ; (形参)
4.static中不能使用this。(类只能使用类的方法和类的变量)
5.如果有重载的构造器,可以在一个构造器中使用this.来调用其他构造器方法。

super(隐式参数)。super指向直接父类对象

1.构造方法中代码的第一句总是super();(如果你不加,编译器自动加。除了object方法,因为它没父类)。

继承

定义:继承是对某一批类的抽象,从而实现对现实世界更好的建模,提高了代码的复用性。

1.子类继承父类,可以得到父类的全部属性和方法(除了构造方法
2.java中类只有单继承。
3.如果定义了一个类而没有调用extends,则这个类的父类是:java.lang.Object

重写

1.在子类中可以根据需要对从父类中继承来的方法进行重写。
2.重写方法必须和被重写的方法具有相同方法名称,参数列表和返回类型。
3.重写方法不能使用比被重写的方法更严格的访问权限。

final关键字

1.修饰变量后变量相当于常量。
2.修饰方法后不可被子类重写,但可以被重载。
3.修饰类后不能有子类,不能被继承。e.g. Math、String

封装(encapsulation)————高内聚,低耦合

1.封装也叫隐藏。
2.成员变量全部私有,提供相应的共有的get(),set()方法。
3.static或常量公开。

多态(polymorphism)

1.不同类(有同一父类)的对象对同一消息做出响应,同一消息可以根据发送对象的不同而采用多种不同的行为方式。
2.使用多态的必要条件:要有继承、要有方法重写、父类引向子类对象。

抽象类

1.定义:包含有抽象方法的类。
2.抽象类,只能被继承。不能实例化。
3.抽象方法:只有方法的声明,没有方法体。抽象方法只能被子类实现。
4.抽象类的意义:
(1)抽象类为所有子类提供了一个通用模板,子类可以在这个
模板基础上进行扩展。
(2)通过抽象类,可以避免子类涉及的随意性。
(3)把方法设计和方法实现分开

接口————interface

1.接口中只有常量和抽象方法。
2.在接口中定义常量时,常量前面默认有 public static final
定义抽象方法时,抽象方法前面默认有 public abstract
3.抽象类和接口都不能new它们本身,只能new它们的子类,它们只可以做类型
4.接口可实现多继承。

内部类

1.内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问。
2.普通的成员内部类,它可以访问外部类普通的属性和方法。可以看作外部类的一个普通属性。调用时,必须先有外部类对象后才能有内部类对象。

非静态内部类

1.非静态内部类必须寄存在一个外部类对象中。因此如果有一个非静态内部对象那么一定存在对象的外部类对象。非静态内部类对象单独属于外部类的某个对象。
2.非静态内部类可以使用外部类的成员,但是外部类不能直接访问非静态内部类成员。
3.非静态内部类不能有静态方法,静态属性,静态初始化块。
4.静态成员不能访问非静态成员

静态内部类

1.当一个静态内部类对象存在,并不一定存在对应的外部类对象。
2.静态内部类可以看作外部类的一个静态变量。

匿名内部类   

一般用于监听事件。

局部内部类

定义在方法内部,作用域只限于本方法,用的很少。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值