JAVA之从入门到放弃(二)

面相对象

OOA:面向对象分析
OOD:面向对象的设计
OOP:面相对象编程 *
高质量代码:复用性好,移植性好,扩展性好,维护性好,健壮性好,效率性好,可读性好

类和对象

类:指的是一类事物的统称,不具体,在程序中指的是模板的意思
对象:指的是一类事物具体的存在, 真实的,能看到摸到的,在程序中指的是内存中的实例

封装

封装:将同一类别多个对象共有的属性和行为 封装到一个模板类的过程

内存

栈区:用来存放局部变量的区域,指的是在方法中声明的变量
特点:方法执行完毕,方法中声明的变量则立即销毁
堆区:用来存放对象的区域,指的是通过new关键字创建的对象
特点:如果创建的对象没有被引用,则会变为内存垃圾等待GC垃圾回收期回收
GC(垃圾回收器):会不定期检查并清理内存中的垃圾
方法区:(待添加)

构造方法(构造器)

适用性:在创建对象时,可以快速为当前对象初始化赋值数据
构造方法语法:类名(){ } 在模板类中添加
构造方法的本质作用:是创建对象的必要语法,创建对象时会执行使用的构造方法。

现象1:如果一个类没有明确写构造方法,那么编译器会自动赠送一个默认的构造方法,默认构造方法则是默认的无参构造方法
现象2:如果一个类中写了构造方法,不管是无参还是有参构造方法,系统则不再赠送

实现构造方法的重载,来解决不同情况下创建对象时初始化赋值的使用

满足重载条件:名字相同,方法参数不同或参数类型不同即可重载

继承

生活中的继承:财产继承,钱不用自己挣,继承过来也能花
软件中的继承:代码继承,代码不用自己写,继承过来也能用,指的是复用代码
继承的适用性:当多个模板类之间存在共性的属性和行为时,且它们在概念上是is a(是一种)的关系,才可以用继承来优化代码
继承语法:通过extends关键字来实现继承关系

  • 父类(超类):放所有子类共有的属性和行为
  • 子类(派生类):放自己特有的属性和行为
  • 创建子类对象,子类对象不仅仅可以访问自己的内容,也可以访问继承得来的内容,继承过来代表自己拥有
  • 创建父类对象,父类对象只能访问自己的内容
  • 继承特点:单一性,传递性

泛化:从多个模板类之间提取冗余重复代码的过程,利用泛化来实现继承

super关键字

JAVA规定,构造方法是不可以继承的

  • 如果实现了继承,在创建子类对象时,子类的构造方法会先执行父类的构造方法,然后再执行子类的构造方法的内容。若没有明确为父类提供构造方法,那么子类则执行的是父类中默认的构造方法
    现象:子类构造方法一定会先执行父类的构造方法
  • 若父类中写了有参构造方法,而没有提供无参构造方法,如果一旦被继承,其子类则会报错
    解决:需要明确调用父类的有参构造方法进行使用即可
  • this:在编译期间代表当前类,访问当前类成员,在运行期间代表调用方法的对象
  • super:代表父类,访问父类成员

super.成员变量(应用率极低) ---------------->访问父类中的成员变量
super.方法 ----------------->访问父类中的方法
super(); ----------------->访问父类中的构造方法。具体有参无参看具体情况。

向上造型

向上造型只会发生在父子关系中

  • 声明父类型 创建子对象的语法就叫向上造型
  • 父类型可以代表不同的子类型
重写(override)

重写只会发生在父子关系中

定义:当实现继承后,子类无法复用父类中提供的某个方法时,子类可以通过重写的方式来实现自己对于该方法的逻辑定义

  • 简单重写语法遵循两同原则:子类重写的方法要跟父类的方法名一致,参数位置一致
  • 调用父执行子的标准:1.实现向上造型 2.子类需要实现重写
方法的重载和重写的区别

重载(loverload/loverloading):发生在本类中,方法名相同,参数类型或数量不同
重写(override/loverriding): 发生在父子关系中,方法名相同,参数类型或数量相同

package(包)

Java设计package作用:就是为区分不同的类文件,避免类名冲突
包名要求:建议纯小写,域名反写,项目名称,模板名称,类名

你可能感兴趣的:(JAVA之从入门到放弃(二))