Java面向对象总结02

类和对象:




类是对象的集合,对象是类的实例


定义类:

public class 类名{

属性; //静态的 特征
方法; //动态的 行为

}

创建对象:

public class  测试类{

public  static void main(String[] args){

类名 对象=new 类名();
对象.属性;
对象.方法:
}
}


面向对象的思想:

面向对象和面向过程的区别:

面向对象侧重于对象本身,对象可以封装属性和方法
面向过程侧重于过程,代码的逻辑执行


面向对象的特征:


1. 封装

吧属性用私有 private, 通过公共的getter,setter方法来实现队属性的访问

2. 继承

子类能够继承父类的属性和普通方法,构造方法不能被继承
子类不能继承子类访问不到的属性和方法
父类private 子类就访问不到
父类 默认, 异包中子类访问不到

好处: 实现代码复用

3. 多态

用父类来表示子类自己不一样的形态

条件: 1. 继承 2, 重写  3, 父类引用指向子类对象

本质上向上转型  自动类型转换

多态好处:

减少代码量,提高程序的可维护性和可扩展性

4. 抽象  部分资料里面是:

// 第一种不属于抽象  属性被父初始值了   第二种属于抽象

class AAA{
String name="张三";
int health=90;
//方法
}



class AAA{
String name;
int health;
//方法
}


方法:




构造方法:
特点: 方法名和类名相同,没有返回值类型

分类: 有参和无参的构造方法

作用: 创建对象用的,new 关键字调用的是构造方法

不能通过对象名来调用构造方法

如果类里面没有任何构造方法,系统会默认提供一个无参的构造方法
如果有有参的,系统将不再提供;
建议: 有参的无参的都写上或者都不写

普通方法:


分类:

根据参数:  有参的和无参的

根据返回值: 有返回值和没返回值的方法

没返回值: void
有返回值: 方法名前写返回值类型   return  返回值;



方法的重载: overload

方法名相同,参数列表不同(包括个数和对应位置类型不同),跟返回值类型和修饰符没关系
用在本来当中

构造方法和普通方法都能重载


方法的重写: override

方法名,返回值类型,参数列表相同,子类重写的方法的访问权限>=父类的权限;方法里面的逻辑不一样

用在继承当中,子类重写父类的方法

构造方法由于不能被继承,所以不能被重写

属性不能被重写,属性叫覆盖,覆写,类似重写的作用



关键字:

访问权限修饰符:

修饰类,属性,方法   权限依次增大

private: 私有的,用在本类当中

默认:  什么都不写就是默认的,用在本包中

protected: 受保护的, 用在本包或者异包中子类 

public:公共的吗,在该醒目中任何地方


this:


代表当前对象,用在本类当中

1. this.属性 区分属性和参数
2. this.方法 调用当前普通方法
3. this() 调用无参的构造方法 必须写在方法内部第一句
4. this(参数值,参数值,。。) 调用有参的构造方法 必须写在方法内部第一句

super:


代表父类对象,用在子类当中,调用父类的相应信息
1. super.属性 调用父类的相应属性
2. super.方法 调用父类的普通方法
3. super() 调用父类无参的构造方法 必须写在方法内部第一句
4. super(参数值,参数值,。。) 调用父类有参的构造方法 必须写在方法内部第一句

有参的和无参的构造方法里面都不由一个默认的super()   几遍不写也会有一个默认的

static:

静态的

静态属性和静态方法一般通过类名打点调用,也能通过对象名来调用,但不建议

1. static  属性   属于类变量 和所有类的对象之间是一对多的关系
2. static 方法   只能调用静态内容

3. static{}  静态块 只能调用静态内容   第一次使用到该类的时候就自动加载执行
主要做初始化工作


final:


最终的

1. final 属性   该属性必须有初始值,是个常量,不能被重新赋值
2. final 方法    不能被重写
3. final 类      不能被继承



抽象类:

不能被实例化
类前面有abstract关键字

抽象方法: 方法前有abstract关键字,没有方法体,{}也没有

抽象类的子类必须重写抽象类里的抽象方法

抽象类里面可以有0--多个抽象方法

抽象方法必须存在于抽象类里面



接口:

表示一种约定或能力

不能被实例化

接口里面只能定义常量和抽象方法

接口里的抽象方法也没方法体 ,{} 额没有,abstract可写可不写

接口的实现类必须重写接口里的抽象方法

实现类能同时实现多个接口,继承只能继承单个

抽象类侧重属性,接口侧重能力和约定




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值