码迷,mamicode.com
首页 > 编程语言 > 详细

Java知识点3

时间:2021-06-23 16:42:34      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:私有   不用   必须   构造   传值   不可   根据   接口   属性   

Java知识点3

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

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

认识论角度理解:先有对象后有类,对象是具体的事物,类是对象的抽象。

编码角度理解:先有类后又对象,类是对象的模具。

Java传值方式:值传递,引用传递(传对象,本质还是值传递,但实参会受影响)。结论:Java只有值传递。

构造器(构造方法):

? 1.和类名相同

? 2.没有返回值

作用:1,new的本质是调用构造方法

? 2,初始化对象的值

:定义有参构造后,如果想使用无参构造,必须显示定义出无参构造方法。

实例化对象的原理图技术图片

三大特性

封装:属性私有,提供get、set方法

继承:子类扩展(extends)父类,java只有单继承,但能实现多个接口。所都的类都直接或间接的继承Object类,该类就算未未定义任何方法,new出的实例也有许多继承而来的方法,如toString,equles等方法。

super与this: this表示当前对象本身(本身调用者这个对象),super表示子类调用父类,super()函数在子类构造函数中调用父类的构造函数时使用,而且必须要在构造函数的第一行。super只能出现在子类的方法中。

  • super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)
  • this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)
  • super()和this()类似,区别是,super()在子类中调用父类的构造方法,this()在本类内调用本类的其它构造方法。
  • super()和this()均需放在构造方法内第一行。
  • 尽管可以用this调用一个构造器,但却不能调用两个。
  • this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
  • this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
  • 从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。

多态:同一方法可以根据发送的对象不同而采取不同的行为方式,多态是方法的多态,继承关系是基础,不然转换时会报类型转换异常。

例如:Cat子类继承Pet父类。

Cat a1 = new Cat();
Pet a2 = new Cat();//父类的引用指向子类对象
a1.eat();
a2.eat();
  • 若父类Pet中有eat()方法,且Cat子类未重写该方法,则a1,a2都调用的是各自类中的eat()方法了。:Cat类中有eat()方法,继承来的。
  • 若父类Pet中有eat()方法,且Cat子类重写了该方法,则a1,a2都调用的是Cat子类中的eat()方法。
  • 若某个方法如:run()定义成Cat类中特有的方法,不是从Pet父类中继承来的,则a2.run()的调用将失败,但可以用 ((Cat) a2).run() 转型后调用Cat类中的run()方法。

向上转型:子类转换为父类(自动转换,丢失子类中原本可以直接调用的特有方法)

向下转型:父类转换为子类(需强转)

注意点

  • static修饰的方法属于类,不属于实例,不能被重写。
  • final修饰的属于常量方法,不能被重写。
  • private修饰的属于私有方法,不能被重写。

Static:修饰的变量和方法属于类,可以直接用类名+ . 的方式调用,不用new对象再由对象去调用。

  • 由final修饰的类不能被继承

  • 如果类中只有private的构造方法,那么此类不可以被继承。

    其原因在于:

    (1)一个类一定会有构造函数,如果不写,那就是默认的无参构造函数,如果写,就只有所写的构造函数。

    (2)子类的构造函数一定会调用父类的构造函数,但是如果父类中只有私有的构造方法,那么子类就无法调用父类,就会有问题。

Java知识点3

标签:私有   不用   必须   构造   传值   不可   根据   接口   属性   

原文地址:https://www.cnblogs.com/shanqiu24/p/14920749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!