面向对象

重点

===========================================================
*面向对象的概念
1.封装性 只需使用,不用了解内部构造及原理
2.继承性 可以继承父类的方法,避免代码重复率高
3.多态性 相同的名字代表不同的内涵
===========================================================
*类与对象
1.类是对某一事物抽象描述,而对象用于表示现实中该类事物的个体
定义:成员变量(特征,属性),成员方法(行为)。
方法中的成为局部变量
2.对象创建与使用
类名 对象名称= new 类名();
对象名称.对象成员
3.类的封装
private私有化属性 只能在本类中访问 外界访问需要提供一些public的公有
方法。 getXxx() setXxx();实现封装
===========================================================
*构造方法
1.方法名与类名一致
在方法名的前面没有返回值类型的声明
在方法中不能使用return语句返回一个值
2.构造方法可以重载,只是参数的不同
注意:无参构造默认,但有有参构造需要重写无参
===========================================================
*this和static
1.this可以在方法中访问成员变量
this调用成员方法时,this可以省略
2.构造方法的调用:

只能在构造方法中用this调用,不能在成员方法中使用在构造方法中,

this语句必须位于第一行,仅出现一次.

3.垃圾回收
System.gc();

4.static修饰成员变量,静态变量可以被所以实例共享,可以不创建对

象,直接调用该静态变量.

5.静态代码块,在类中,由于类只加载一次,所以代码块也只加载一

次,通常对类的成员进行初始化

6.单例模式

设计模式就是不同的棋谱,不同的棋局,就用不同的棋谱单例就是满

足只有一个实例对象

Class Single(){
private static Single INSTANCE=new Single();
private Single(){}//私有化构造方法
private static Single getInstance(){//提供返回对象的静态方法
return  INSTANCE;
}
}
clasee Single(){
 Single(){}
public static final Single INSTANCE=new Single();
}
===========================================================
*内部类

1.类中除了成员变量,成员方法,还可以定义类,这种称为成员内部类

外部类名.内部类名 变量名=new 外部类名().new 内部类名();

2.静态内部类

外部类名.内部类名 变量名=new 外部类名().内部类名();

3.方法内部类

成员方法中定义的类,只能在当前方法中使用,可以访问外部类的成员变量

*帮助文档

开始:/**

结束:*/

Javadoc可以生成一个HTML的文档

@author 对类的说明,程序的作者

@version 对类的说明,程序的版本号

@param 对方法的说明,表示方法定义的参数以及参数对应的说明

@return 对方法的说明,表示方法返回值代表的意义

命令:javadoc -d . -version -author Person.java

-d表示指定输出文档存放的目录

.当前的

-version 用来指定输出文档中需包含版本信息

-author 

用来指定输出文档中需包含作者信息

===========================================================

*类的继承

1.在现有的类的基础中再构建一个新类,子类自动拥有父类所以可继承的属性和

方法 关键字extend,只有一个父类,可以有多个子类

2.重写父类方法,注意方法名 参数列表和返回值类型都要与父类相同

3.super子类重写方法时,依旧可以用它来调用父类方法

super.成员变量

super.成员方法(参1,参2)

super.([参1,参2])

注意:super调用父类构造方法时必须位于第一行,仅此一次

===========================================================
*final关键字

1.final修饰的类不能被继承,不能派生子类

  final修饰的方法不能被子类重写

  final修饰的变量是常量,只能被赋值一次

2.抽象类

abstract 关键字 

注意:抽象类中必须包含抽象方法,抽象类不可以被实例化,必须创建一个子类

接口:抽象类中的所有方法都是抽象方法,就是接口 interface 用implements

实现

特点:接口中的方法都是抽象的,不能实例化对象

实现接口时,抽象类随意实现方法,其它全部实现方法

implements可以实现多个接口,以逗号隔开。

===========================================================
*多态

1.为了使一个方法具有通用性,由于参数类型不同而执行不同的现象就是多态

可拓展性和可维护性

2.类型转换

避免出现转换错误,instanceof可以判断一个对象是否为某个接口或类的实例

或者子类实例

对象(或者对象引用变量)instanceof 类(接口)

3.object类

getClass().getName()返回对象所属类的类名,即Animal

hashCode 代表返回该对象的哈希值

Integer.toHexString(hashCode)将对象的哈希值用十六进制表示

hashCode 是object类中定义的一个方法这个方法将对象的内存地址进行哈希

运算,返回一个int类型的哈希值

4.匿名内部类

new父类(参数列表)或父接口(){匿名内部类}

===========================================================

 *异常
Error代表错误

Exception代表异常

三个方法

String getMessage()返回throwable的详细字符串

void printStackTrace()将此throwable及其追踪输出至标准错误流

void printStackTrace(PrintStream s)将此throwable及其追踪输出到指定的

输出流

try...catch finally

throws关键字

修饰符 返回值类型 方法名 ([参1,参2...])throws ExceptionType1[ExceptionType2...]{

}
1.编译时异常 使用try...catch 语句对异常进行捕获

2.使用throws关键字声明抛出异常,调用者对其处理

3.自定义异常对象 

throw Exception 异常对象

===========================================================
 *访问控制

private(类) default(包) protected(子类访问) public(公共访问)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值