2021-07-28(面向对象,封装,继承,访问修饰符<public private protect friendly> ,static 修饰的方法和变量,this,super()

1、面向对象

封装:找出与实体相关的名词,封装成对象

继承:

多态:

2、封装

数据+对数据的操作

实体类:创建对象+存放数据

1、创建时对属性变量进行属性私有化(private)

2、公有的属性方法

封装的优点:

        (1)隐藏类的实现细节;

        (2)让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;

        (3)便于修改,增强代码的可维护性;

实体类命名后缀: Entity Bean Model Pojo VO I/

实体类:封装(事物)对象所定义的类

将各个相关数据封装在一起,类的对象主要用于存储每个数据的(功能类) (工具类)

实体类(创建对象+存放数据访问( 限制/控制/权限)修饰符

public公有的:所修饰的可以在工程中任意位置使用

私有的:所修饰的可以在当前作用域中使用

实体类封装的组成部分:

         1-私有的属性变量:首字母必须小写。(变量名长度至少为3个字符, 除id)

         2-公有的属性方法:getter/setter

         3-构造方法:方法名与所在类名- -致,无返回类型: 

       类中若无任何构造方法,则可使用无参默认构造方法。格式: new 构造方法(// -- 否则仅能使用所定义的构造方法。

        否则仅能使用所定义的构造方法。

3、继承

//概念:        

        //子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法, //或子类从父类继承方法,使得子类具有父类相同的行为。

        //继承(is-a)

        //本质:包含并可使用所继承类中可访问的内容

        //默认:直接继承extends object (Object是所有类的基类/超类)

        //注解“@"annotation/注释javadoc

重写的规则

*****若对象已调用的方法已经重写,则调用重写后的方法,否则调用的是父类中的方法

        1-参数列表必须完全与被重写方法的相同;

        2-返回类型必须完全与被重写方法的返回类型相同;

        3-访问权限不能比父类中被重写的方法的访问权限更低。/例如:父类的A方法是public,那么在子类中重写该方法就不能声明为protected。

         4-父类的成员方法只能被它的子类重写。

        5-声明为final的方法不能被重写。

        6-声明为static的方法不能被重写,但是能够被再次声明

        7-子类和父类在同一个包中,那么子类可以重写父类所有方法,/除了声明为private和final的方法。

        8-子类和父类不在同一个包中,/那么子类只能够重写父类的声明为public和protected的非final方法。

        9-重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。/但是,重写的方法不能抛出新的强制性异常,/或者比被重写方法声明的更广泛的强制性异常,反之则可以。

        10-构造方法不能被重写。

        11-如果不能继承-一个方法,则不能重写这个方法。

重载:

        在一个类中,方法名相=相同,参数不同(个数,类型,顺序)

继承规则:

        不支持多继承:一个实体类同时继承多个实体类

        支持:

                单继承:calss A extends B{}

                多重继承:class A extends B{}

                                class C extends A{}

                

t1为实体类的对象:

        t1.clone();克隆

        t1.getClass():获取类的描述,反射

        多线程:

        t1.notify();

        t1.notifyAll();

        t1.wait();

        t1.wait(timeout);

        t1.finalize()(不推荐使用)

                GC垃圾自动回收机制,

3、访问限制符

public:

      作用:  对工程中的所有类可见

        位置:类,接口,成员变量,成员方法

        一个java文件中只能由一个public 修饰的class类

private

        作用:在当前类内可见。

        位置:成员变量,成员方法

        不能修饰外部类

protected

        作用:对同包内和所有子类可见

        位置:成员变量,成员方法

        不能修饰外部类

friendly(缺省,默认)

        作用:在同一包内可见

内部类默认修饰符为public

外部类默认修饰符为friendly(缺省的)

  继承的(自动)向上转型

        Animal c=new Dog();

        面向接口的编程方式

        向上转型:下级对象赋值给上级变量

         调用规则:仅能调用变量类型的方法和变量

                        若是重写方法,则调用子类中的重写方法                      

        调用变量的时候只看变量的类型。

4、this指针

代指当前对像的引用

        作用:能够调用所在方法的变量

        this在调用构造函数的时候,要避免递归现象;

5、super

        表示的是父类对象

        子类实例化时,会先实例化父类,

        父类实例化时使用的构造方法取决于子类中的super()方法参数

        

5、修饰符final

        被修饰的类,方法和变量不可改变

        修饰变量时,必须赋予初值

6、static

static方法不需要对象就可以进行调用

通过类名直接调用

类在第一次使用是自动执行一次静态代码块

之后调用实例代码块

最后调构造函数生成对象

   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值