平凡之上
博观而约取,厚积而薄发! 守得云开见月明。

# 2021-12-11  2021-12-14  2021-12-15

 1、面向对象

 

类的组成由属性方法组成,属性可以称为成员变量,方法可以称为成员函数。

 面向对象的本质是:以类的方式组织代码,以对象的形式组织(封装)数据。

三大特性:封装、继承、多态

2、方法的定义及调用

 

值传递和引用传递:

值传递:

    实参传递给形参的值,实参和形参在内存上是两个独立的变量,对形参的修改不会影响实参的值。

引用传递:

    实参传递给形参的是堆内存上引用的地址,形参和实参在内存上指向的是同一地址,对形参的改变会影响实参。

值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

 

 3、对象的创建,类和对象

类:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法);
对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。

可以一句话来总结出类和对象的区别:类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。

转载:https://blog.csdn.net/wei_zhi/article/details/52745268

(1)创建与初始化

  • 使用 new 关键字创建对象。使用new创建的时候,除了分配内存空间外,还会给创建好的对象,进行默认的初始化以及对类中的构造器的调用。
  • 类中的构造器也称构造方法,是在进行创建对象时候必须调用的,构造器两个特点:
  1. 必须和类的名字相同
  2. 必须没用返回值,也不能写void

  alt+insert  一键生成构造器

 4、三大特性

(1)封装

属性私有、get/set

实现Java封装的步骤:

  • 1. 修改属性的可见性来限制对属性的访问(一般限制为private)
  • 2. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问

封装的优点

  • 1. 良好的封装能够减少耦合。

  • 2. 类内部的结构可以自由修改。

  • 3. 可以对成员变量进行更精确的控制。

  • 4. 隐藏信息,实现细节。

 (2)继承

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

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

不支持单继承。

类的继承格式

在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:

class 父类 {
}
 
class 子类 extends 父类 {
}

Object类是所有类的父类。一个类都会直接或者间接的继承自该类。

this和super  

 方法的重写

转载:https://www.runoob.com/java/java-override-overload.html

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

方法的重写规则

  • 参数列表与被重写方法的参数列表必须完全相同。

  • 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。

  • 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。

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

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

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

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

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

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

  • 构造方法不能被重写。

  • 如果不能继承一个类,则不能重写该类的方法。

 (3)多态

多态存在的三个必要条件

  • 继承
  • 重写
  • 父类引用指向子类对象:Parent p = new Child();

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

多态是方法的多态,属性没有多态。

参考多态:https://www.cnblogs.com/xuanlin666/p/10857255.html

static、final、private修饰的方法不能使用多态。

 

posted on 2021-12-11 20:51  平凡之上  阅读(117)  评论(0编辑  收藏  举报