类和对象的关系

  • 对象是具体的,实实在在存在的,是现实生活中看得见也摸得着的的个体。
  • 类是抽象的,是现实中很多有共同特性的事物的统称。
  • 使用对象时需要先实例化,再为其属性赋值,最后调用方法。

类的构造方法

构造方法的作用:实现局部变量为全局变量(简化了对象的赋值操作)

  1. 构造方法一般使用public修饰。在单例时会用到private
  2. 构造函数没有返回值,也不能使用void修饰。
  3. 构造方法名必须和类名一致。
  4. 一个类在没有任何构造方法的时候,Java虚拟机会提供一个无参的默认构造函数,但是一旦设置了构造函数,Java虚拟机将不再提供任何构造方法了,因此一般在自己定义了构造方法的时候,都会添加一条无参的构造函数。

this关键字

  • 在构造方法中使用this就会,将局部变量的值赋给全局变量,如果没有this就会更加系统的就近原则进行赋值。
  • this在构造方法中就代表当前对象。
  • 可以通过this(参数)进行调用本类的其他构造方法,但是只能放在调用方法的第一行,因此一个构造方法中只能调用一次其他构造方法。

toString()方法和equals()方法

toString()方法:直接打印某个对象时,其实就是调用对象的toString方法。因此我经常会在类中重写toString()方法,可以简化对对象属性的打印输出。在没有重写的情况下调用父类的toString()方法,在没有继承的情况下就调用Object类的toSring方法,其返回值为:getClass().getName() + "@" + Integer.toHexString(hashCode());
equals()方法:用于比较两个对象是否为同一个对象,在实际中认为是同一个对象的规则不一样,因此该方法会经常按照我们的对比规则重写。在没有重写的情况下,会调用父类的equals()方法,如果没有继承的情况下回调用Object类的equals()方法,其返回值为:(this == obj),而使用==对比的是hashcode。

Java中的访问修饰符

  • public:表示公共的访问修饰符,用public修饰的资源可以在任何位置访问,即任何位置有效
  • protected:受保护的,在同一个包下都可以使用;但是在不同包下,只能在父子类继承中使用。
  • 默认:不使用任访问何修饰符修饰,只能同一个包下访问,计包内有效
  • private:私有的,表示只有自己能用,也就是本类有效

面向对象

封装: 将内部实现进行“黑处理”,也就是使用者不知道其内部实现,也不需要了解其内部实现,只需要按照封装者提供的使用方法便能完成功能。类中的get和set方法就是一种封装。

继承:通过继承子类可以获得父类的一些属性和方法,使得子类拥有父类的能力。提高了代码的复用性

  • 在Java中继承无处不在,没有使用extends继承的类会默认继承Object类,因此Object是顶级类。
  • Java中的继承是单根继承,即一个类只有一个父类。
  • 不能继承父类中被private修饰的变量、方法,父类的构造方法也不能被继承。
  • 子类是可以调用父类的构造方法的,使用super关键字,super([参数列表])即可调用父类构造方法,当然也可以通过super.属性名访问被public和protected修饰的属性值,可以通过super访问父类中被重写的方法()。

多态:一个同名的方法,当传入的参数列表不一样时,体现出不一样的形态,即称为多态,方法重载和方法重写就是多态的一种表现形式。

最后更新: 2019年09月03日 23:54

原始链接: lemonman.top/2019/09/03/Java学习札记二/

× 请我吃糖~
打赏二维码