Java入门知识点整理2

面向对象的核心:

抽象/继承/封装/多态

1.抽象:在完成某功能的过程中通过分析抽离出该功能需要的各种数据(属性、方法.....)

2.继承:子承父业

好处:

子类可以直接使用父类的资源 站在巨人的肩膀上起步可以更高

类比到开发编码中:

优势:

(1)提高代码的重用性

(2)提高代码的扩展性

继承的语法: 子类  extends  父类

问题:

(1)一个子类能不能同时继承多个父类?

JAVA中的继承是单继承

(2)继承能不能传递?

A extends B

B extends  C

A是否可以使用C和B中的资源?

可以 所有的类都基层自一个顶层类Object

3. 封装:利用一种机制来控制数据的可见性,这种机制-->访问修饰符

四个访问修饰符:

public->protect->默认->private(从左往右可见性逐渐缩小)

public所修饰的数据在任何情况下都是可见的(本类、同一个包下的不同类之间、同一个包下的父子类之间、在不同包下的父子类或者无关类之间)

private所修饰的数据只在本类中是可见的

protect和默认所修饰的数据,在同一个包下和public是一样的;不同包下protected是有可能被访问到的,但是默认的是一定不能访问的。

javabean-->是一种封装数据的方法

要求:

(1)类必须是public的

(2)所有的属性必须是private的

(3)为每一个属性提供一组setter/getter方法用于访问(设置/取值)

//setter赋值方法

public void set首字母大写的属性名(参数) {

this.属性名 =参数;

}

 

//getter取值方法

public String get首字母大写的属性名() {

return this.属性名;

}

(4)必须含有至少一个无参构造方法

问题:

能不能设计出只读或者只写的属性?

只读:

属性private

只为属性提供getter方法

只写:

属性private

只为属性提供setter方法

4.多态:一个事物在不同条件下所呈现出的不同状态

例子:水

0度以下:固态

0~100度:液态

100以上:气态

在程序中的多态是怎么表现的?

(1)从未微(从方法)观角度 方法在不同条件下呈现的不同状态:

a:方法的重载:扩展本类中同类型方法的功能

<1>在同一个类中

<2>方法名必须相同

<3>参数列表不能相同(参数的数量不同,参数类型不同,不同数据类型的顺序不同,相同类型但是顺序不同不叫参数列表不同)

<4>返回类型没有限制

<5>访问修饰符没有限制

<6>和异常的关系...

问题:

(1)构造方法是否能重载?可以

(2)Object类中是否有重载的方法?有,wait()方法

b:方法的重写:子类方法覆盖父类方法的功能

(1)父子类之间

(2)方法名相同

(3)参数列表相同

(4)返回类型相同

(5)访问修饰符子类方法的访问的不能小于父类方法的

(6)和异常的关系.....

问题:

<1>构造方法是否能重写?不行

<2>Object类中是否会被有重写的方法?有,Object中的equals()和toString()、hasCode()

(2)从宏观(从对象)角度 对象在不同条件下呈现的不同状态  对象多态的前提:

<1>必须在父子类之间

<2>必须有方法重写

<3>必须有父类引用指向子类对象

A是 B的父类

B b = new B();一般实例化

A a = new B();父类引用指向子类对象

问题:为什么要使用多态?  ———简化代码结构,提高代码的可维护性

a:理解多态: 实例化对象的时候  父类引用 = 子类对象

b:方法的参数:

定义:public void 方法名(父类引用) 

调用:方法名(之类对象)

c:方法的返回值

public 父类 方法名(参数列表){

return 之类对象

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值