java面向对象 知识点简单介绍

java面向对象

定义: 具有相同属性和方法的多个对象的抽象
对象: 对象是具有自身属性和方法的一个类的具体实例(通过new 类得到的,对象是类的一个具体实例)

类的访问控制权限

Public 公共的
Private 私有的
Protected 受保护的
不写的时候 就是默认的

属性

属性的定义:
属性就是变量
定义方法: 数据类型 变量名 (其中数据类型可以是基本数据类型,也可以是一引用数据类型,(类类型))
全局属性: 归当前的类所有,具有默认值,全局变量可以被当前的那个类所有的地方都可以用。
局部属性: 当前区域所有,在局部的变量,没有默认值,在使用之前必须赋初值才能使用。如果有局部变量和全局变量名称相同时,局部采取局部变量优先原则。

构造方法

类中包含构造方法、属性、和普通方法,构造方法不写的话,默认为有一个没有参数的构造方法,如果在创建对象的时候的参数个数为空,则直接调用默认的方法。如果创建的时候有多个参数,且重写构造方法,那么对象的方法和构造方法的顺序、个数、数据类型要一致。

方法

格式: 【访问限定符】【修饰符】返回值类型 方法名【参数…】 {方法体(java代码)}
修饰符 修饰符:static 静态 final 最终 abstract 抽象
返回值: 有返回值(可以是任何类型)如果方法有返回值,必须使用return关键字,并且返回的内容必须与返回值一致。 无返回值void
方法的使用 如果方法没有使用修饰符定义,那么需要使用对象.方法名(【参数】) 进行调用。
方法的重载 同一个类中,同时存在着参数个数、类型、或者是顺序都不同的同名方法,即方法的重载。此时调用这些方法时,需要根据参数的类型个数顺序来进行调用哪一个方法的判断

静态方法和非静态方法

静态方法 用static修饰的方法,只能调用静态属性,可以直接类名.方法名调用,静态方法属于类所有
非静态方法 可以调用静态属性和非静态属性,调用时:先实例化对象 在对象名.方法名,非静态方法属于对象所有

面向对象四大特征

封装

私有化属性: 利用private关键字对属性进行私有化限定
封装 对私有化的属性进行封装
封装就是使用方法来进行对属性的操作
一般封装的方法都称为get()和set()赋值,
每一个私有属性都对应的有一个get和一个set方法,方法的名是get或者set加上属性名字的首字母大写。

继承

定义: 两个类拥有关系,使用extends关键字实现继承
特点
① 只能是单继承 一个类中只能有一个直接父类。
② 一个类可以有多个子类。
③ 子类继承了父类就拥有父类的所有属性和方法
④ 子类可以有自己的独有的属性和方法。
⑤ 重写方法:可以在子类中写一个和父类一样的方法,方法的重写:在两个类中(子父类),方法的名字和参数以及参数的类型、顺序、个数都一样。方法的返回值也必须一致
⑥ 如果A类继承了B类,B类继承了C 。那么A类也就拥有了C类的所有属性和方法。
⑦ 父类必须有一个无参的构造方法。
构造方法不能被继承

多态

同一个对象拥有多种状态:
**向上转型 子类转父类 **

Car cx = new JiaoCar();

编译时状态: 子类=子类
运行时状态: 子类=父类 将子类独有属性和方法进行隐藏

**向下转型 父类转子类 **

JiaoCar jc = (JiaoCar)cx;

必须是进行向上转型之后的那个父类对象,进行强制转换赋值给子类对象。
转型之后就可以调用子类独有的属性和方法。
instanceOf 判断两个是不是子父类
将向上转型时候得到的对象与父类对象进行比较,看看是否是同类型的对象。
boolean bool = cx instanceof Car;
多态的体现:重写和重载

抽象

访问限定符 abstract class 类名{
属性
方法
}
访问限定符 abstract 返回值类型 名字(【参数】);

抽象类的特点
1)所谓抽象方法,是指在类中仅仅声明了类的行为,并没有真正实现行为的代码。
2)抽象方法只能存在于抽象类中,正像刚才所言,一个类中只要有一个方法是抽象的,则这个类就是抽象的。类中只要有抽象方法,那么这个类必须被声明为抽象类
3)构造方法、静态(static)方法、最终(final)方法和私有(private)方法不能被声明为抽象的方法。构造方法不能是抽象的,抽象方法不能是私有的
4)一个抽象类中可以有一个或多个抽象方法,也可以没有抽象方法。
5)抽象类只能被继承(派生子类)而不能创建具体对象即不能被实例化。抽象类不能自己实例化自己
6)一个类如果继承了抽象类,那么就必须重写抽象中的所有抽象方法。重写抽象方法有具体的实现

补充

object类

每一个类都继承自超类object
toString方法
使用时必须重写toString方法
equls方法
equals默认比较的是地址值,可以重写equals方法,然后根据自己重写equals里面的比较方式进行比较

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值