面向对象的三大特征:封装,继承,多态

Runtime 桑公司提供的方法:使用单例设计模式
查看方式:ctrl+右键
任务管理器就是单例设计模式:一台电脑只需一个任务管理器就可以管理,没必要开出多个界面,否则只会浪费电脑性能。
单例设计的实现方式:**
1,饿汉式单例:拿对象时,对象早就创建好了。即黑马讲的
2,懒汉式单例:拿对象时,才开始创建对象。
应用场景:任务管理器对象,获取运行时对象(避免浪费内存)

懒汉式单例设计模式:1)把类的构造器私有,2)定义一个类变量用于存储对象,3)提供一个方法,保证返回的是同一个对象。

建议:当系统频繁使用时,就用饿汉式单例;反之,就用懒汉式单例。
(节省内存)

面向对象的三大特征:封装,继承,多态

继承:Java中提供了一个关键字extends,用此关键字可以让一个类和另一个类建立父子关系
public class B extends A{}
A类称之为父类(基类或超类),B类称之为子类(派生类)
继承的特点:子类能继承(能直接用)父类的非私有成员(成员方法,成员变量)
继承后对象的创建:子类的对象是由子类、父类共同完成的。

子类对象实际上是由子父类这两张设计图共同创建出来的。

继承的好处:减少重复代码的编写,提高了代码的复用性。
继承的相关注意事项:
1,权限修饰符
2,单继承、Oject类
3,方法重写
4,子类中访问其他成员的特点
5,子类构造器的特点
学不常用的知识是因为开发需要看桑公司的源代码,还有笔试要用(DateFormat,Exception)

权限修饰符:
修饰符 在本类中 同一个包下的其他类里 任意包下的子类里 任意包下的任意类里
1)private t
2)缺省 t t
3)protected t t t
4)public t t t t
注释:給类访问,不是给类的对象访问(即在类中访问)


单继承,Object类:
Java是单继承的,Java中的类不支持多继承(两个爸爸),但是支持多层继承(譬如爷爷,爸爸,儿子)。
Object类是Java中所有类的祖宗,我们写的任意一个类都是它的子类或子孙类。
Object类的方法: public native int hashCode();

 public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

(知道我们写得任意类都可以调用Object类的方法)


方法重写:
定义:当子类认为父类的某个方法不好用,或无法满足自己的需求时,子类可以重写一个方法名称,参数列表一样的方法,覆盖父类的这个方法。
注意:重写后,方法的访问,Java会遵循就近原则。19:52 2023/11/14
步骤:重写的方法必须要和被重写的方法名一致,参数列表也如此。

其他注意事项:
重写小技巧:使用Override注解(格式:@Override),它可以指定Java编译器,检查我们方法重写的格式是否正确,提高代码的可读性。
子类重写父类方法时,访问权限必须大于或者等于父类该方法的权限(public>缺省>protected)
重写的方法返回值类型,必须与被重写方法的返回值类型一样,或更小。
私有方法、静态方法不能被重写,如果被重写会报错。

申明不变,重新实现*
重写之应用场景:子类重写Object类的toString()方法,以便返回对象的内容。
// ArrayList的toString的重写
一般情况输出对象输出的是地址,但若对toString方法重写就不一定。


子类中访问其他成员的特点:
1,在子类中访问其他成员(成员变量,成员方法),是依照就近原则
super.变量/方法//超类中找/ this.变量/方法//本类中找/
就近访问:先找子类局部,再子类中找,后父类中找,没有报错。

你可能感兴趣的:(java,学习,开发语言)