JAVA面向对象(高级)

面向对象的三个特征:

一.封装:

封装:将解决问题的算法,设计在模板类中  ,我们看不见算法但是可以利用这个算法。

封装的好处:1.更好的维护数据;

                      2.使用者无需关心内部实现,只要知道如何使用即可。

                      3.封装设计的规范:合理隐藏,合理暴露。

隐藏的方法:将定义方法或者变量的public改为private(权限修饰符,该方法只能在该类中进行访问)

权限修饰符 :private//被private修饰的成员只能在本类中被调用。

                       public//可以被可以在任意文件夹总被访问,但是不能跨项目

                       default     //同一个类同一个包中//只要在一个类中,还有同一个文件夹中可以访问。

                       protected:同一个类中,同一个包,不同包的子类。

具体思路:针对私有的成员变量,提供对应的setXXX和getXXX,set是进行设置变量的值,get是用来返回目标值。

javaBean:实体类,封装数据的类

标准:这个类中的成员变量都应该是私有的,并且要对外提供相应的getXXX,和setXXX方法.

1.成员方法私有化

2.空参带参构造方法。

3.对于私有的成员变量,提供相应的setXXX和getXXX方法。

4.实体类只负责数据的存放,而对数据的处理交给其他类来完成,以实现数据和数据业务处理相分离。                      

二.继承:

1.部分关键字的介绍:

static关键字:被static关键字修饰的成员不能够利用this.进行调用。

特点:1.被类定义

           2.多了一种调用方法,可以通过类名直接进行调用。(静态成员都推荐直接用类名进行调用。)

          3.随着类的加载而加载,优先于对象存在。(被static修饰的成员可以在对象创建之初就进行调用。)

使用场景:成员是否被这个类所有的对象共享,就需要用static关键字(被static修饰的成员会放在静态成员变量区)

static通常用来制作工具类,工具类不是描述事物的,而是向我们完成一些事情的类。

如果发现一个类中全部都是静态方法,全部都是static所修饰,私有该类的构造方法,目的:为了不让其他类进行构造对象占据内存,静态的主方法中访问静态方法,只能访问静态的成员,也就是static修饰的成员。

Final关键字

Final关键字是用来修饰类,成员,意思是最终的

Final关键字修饰的特点不能够进行重写。

Final表示该类是最终类不能被继承。

Final修饰变量的命名规范:

如果变量名是一个单词,所有的字母大写max MAX

如果变量名是多个单词,所有字母大写,中间使用下划线分隔maxVlue MAX_VALUE

被final修饰的变量只能够被赋值一次。

Final修饰基本数据类型的时候,其变量值无法改变。

重新认识主方法:

public static void main(String [] args){

}

public 权限修饰符,允许主方法被JVM虚拟机有权限调用。

static :修饰主方法,使得虚拟机不用创建对象就可以直接被调用。

void:无返回值,由于主方法被虚拟机调用不需要返回值。

Main:方法名,JVM只能识别这个方法。

String [] args:此处定义了一个数组,这个args是数组的名字,可以进行更改,此前用来进行键盘录入,现在作用,但作为传统被保存下来。

继承是面向对象的三大特性之一。

继承就是让类于类产生父子的关系。子类可以直接使用父类中非私有的成员。

public class 子类 extends 父类{}

public class Fu{
}
public class zi extends Fu{
}

就上述代码而言: Fu是父类,也称为基类,超类。  zi是子类,也被称为派生类。

当类与类存在共性,同时类与类存在着关系(谁是谁的一种。),这个时候可以进行继承。

 如果说父类与子类,中出现了重名的成员变量,使用时会优先使用子类中的变量值。

如果非要使用父类中的成员变量的值的话,需要使用super关键字。

成员变量的访问特点:

this关键字:访问本类的成员变量。

super关键字:访问父类中的成员变量。

子父类中出现了方法声明一模一样的方法(方法名,形参相同,返回值相同),在创建子类对象的时并调用子类方法逻辑时,需要进行方法的重写。(对父类中这个方法逻辑进行重写。)

方法重写,方法重载:

方法重载(Over load)在同一个类中,方法名字相同,但是方法参数不同。

方法重写(Override):在父类中,出现了方法声明一模一样的方法(方法,参数,顺序)

目标一:

注解@Override(可以校验是否子父类。)

目标二:

当子类需要父类的方法,但是觉得父类的方法逻辑不好(修改|增强)就可以对父类进行重写。

注意事项:

父类中被私有的方法无法进行重写。

子类重写父类中的方法时,访问权限必须大于父类。

注意:protected的权限不同类中的子类。

先从同包的子类调用,在调用子类里面的父类的方法。

JAVA只能单继承不能进行多继承。但可以A继承B,B继承C,这样A可以调用B,C类的方法。

继承中成员的访问特点:------构造方法。

构造方法能否被继承?------不能因为构造方法,要求的名字必须与类名相同

在所有的构造方法中的第一行代码,都隐藏了一句话super();他呢会通过一句话,完成对父类的初始化

细节:java中所有的类都直接或者间接的继承了Object类。

继承中的内存图解:

super和this

如果子类中需要调用父类的对象在子类中没有存在,那么就可以直接用super调用。

开闭原则:对功能进行扩展,对修改代码做关闭,this()和super.()都在争夺构造方法的第一行,因此不能共存。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值