java第五章:面向对象(oop)

方法重写/覆写(Override)

特点:

1一般发生在父子类间,子类重写父类中的方法,方法的返回值类型,方法名,形参列表都要与父类一样,

子类权限修饰符>=父类的权限修饰符

2.一旦重写了父类的方法,子类创建对象后,调用子类重写后的方法;

[email protected]:重写的注解,标注当前方法为重写父类的方法,必须满足重写规则;

方法重载和重写的区别:

1.重载发生在同一个类中,主要提供同名不同参的方法;重写发生在父子类之间,主要为了结合多态使用,提高程序的扩展性和可维护性

2.重载,方法名相同,参数列表不同,跟返回值类型和权限修饰符没有关系;重写,方法名、参数列表、返回值类型要与父类相同,子类权限修饰符>=父类权限修饰符。

super关键字(类比this关键字)

super是对直接父类的引用,可以使用super关键字调用父类的属性(super.属性名),方法(super.方法名),构造方法(super(属性1,属性2....)必须放在构造函数的第一行).

Object类

Object 是所有类的超类、基类、根类,处于java.lang包下,没有使用extends关键字的类,默认extends Object;

Object类中的常用方法:

1.toString();将传入的对象以字符串的形式输出

2.equals();比较的2个引用数据类型,比较的是引用(地址),需要比较内容时候,一般都需要重写equals方法;

3.wait()/notify():多线程有关

4.getClass():返回此 Object 的运行时类。

5.hashCode():返回该对象的哈希码值

6.finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

在继承中程序的执行顺序:

父类静态代码块>子类静态代码块>父类代码块>父类构造方法>子类代码块>子类构造方法

new子类的时候,会先调用父类的构造方法,首先创建父类对象,然后再创建子类实例。

==和equals的区别

1.==比较基本数据类型的时候,比较的是值

2.比较引用数据类型的时候,==和equals的效果一样,比较的是当前对象的引用(地址)

3.想要比较对象的内容,需要重写equals方法

时间: 2024-10-13 07:33:33

java第五章:面向对象(oop)的相关文章

java基础(五章)

java基础(五章) 一.        调试 步骤1:设置断点(不能在空白处设置断点) 步骤2:启动调试 步骤3:调试代码(F6单步跳过)笔记本Fn+F6(F5) 步骤4:结束调试 掌握调试的好处? l  很清晰的看到,代码执行的顺序 l  快速定位到异常代码出现的位置,并帮助修改或改进代码 二.     while循环 1.循环的优点? 减少重复代码的编写:程序会更加的简洁 2.语法 while(表达式){ // 1.表达式是[循环条件],结果必须是boolean类型 //2.{}中的代码,

“全栈2019”Java第五章:IntelliJ IDEA代码自动提示

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第五章:IntelliJ IDEA代码自动提示 下一章 "全栈2019"Java第六章:注释 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&quo

Thinking In Java第五章学习笔记

第五章:初始化与清理 初始化和清理是涉及程序安全的两个问题.Java构造器用于新建对象时的初始化,而垃圾回收器则进行清理. 构造器的名称必须与类名一样,虽然构造器是一种特殊的方法,但是每个方法首字母小写的编码风格并不适合用于构造器. 构造器是没有返回值的,但是new表达式却返回了对新建对象的引用. 方法重载是构造器所必须的.每个重载方法都必须独一无二的参数列表.甚至参数顺序的不同,也足以区分两个方法.不过一般不建议这么做,因为这会使代码难以维护.当传入的数据类型小于方法中声明的形式参数类型,实际

java第五章:面向对象(oop)之三大特性

封装(encapsolution) 程序设计要追求"高内聚,低耦合":高内聚就是类的内部数据操作细节自己完成,不允许外界干预:低耦合就是:仅暴露少量的方法给外界使用: 广义的封装就像包装: 权限修饰符:public ,protected,默认(什么都不写),private; class类的修饰符只能是public或者默认: 属性,方法,构造器可以使任意上述四种: 修饰符的访问权限 同类   同包  不同包的子类 不同包的其他类 public 是 是 是 是 protected 是 是

java第五章:面向对象(oop)三大特性之多态

多态(把代码写活,提高代码的扩展性和可维护性) 生活中的多态:同一种物质,因不同的环境展现不同的形态(水:气态,液态,固态/碳12:金刚石,石墨) 程序中的多态:同一个"接口"因不同的实现,而执行不同的操作(就是在方法中把父类作为形式参数传入,调用的时候,传入子类的实例,最终执行的是子类中重写父类的方法) 多态一般结合方法重写.继承使用,父类引用指向子类: 多态实现步骤: 1.实现继承 2.编译时将父类作为形式参数类型传入(范围大一点,模糊一点) 3.运行时将子类new出的实例传入,最

java第五章:面向对象(oop)之 static关键字

java程序在执行过程中,类,对象以及它们成员加载.初始化的顺序如下: 1.首先加载要创建对象的类及其直接与间接父类. 2.在类被加载的同时会将静态成员进行加载,主要包括静态成员变量的初始化,静态语句块的执行,在加载时按代码的先后顺序进行. 3.需要的类加载完成后,开始创建对象,首先会加载非静态的成员,主要包括非静态成员变量的初始化,非静态语句块的执行,在加载时按代码的先后顺序进行. 4.最后执行构造器,构造器执行完毕,对象生成.上面四段话意思就是静态变量(全局变量)创建时间要早于new对象(成

重新认识java(五) ---- 面向对象之多态(向上转型与向下转型)

多态,大概每个人都知道.但是,又有几个人真的理解什么是多态.多态有哪些细节呢?如果你看到这篇文章的名字,脑海中对多态没有一个清晰的概念,不妨点进来看看,也许会有收获. 什么是多态 简单的理解多态 多态,简而言之就是同一个行为具有多个不同表现形式或形态的能力.比如说,有一杯水,我不知道它是温的.冰的还是烫的,但是我一摸我就知道了.我摸水杯这个动作,对于不同温度的水,就会得到不同的结果.这就是多态. 那么,java中是怎么体现多态呢?我们来直接看代码: public class Water { pu

C++primer第十五章. 面向对象编程

面向对象编程基于三个基本概念:数据抽象.继承和动态绑定. 15.1. 面向对象编程:概述 面向对象编程的关键思想是多态性(polymorphism). 之所以称通过继承而相关联的类型为多态类型,是因为在许多情况下可以互换地使用派生类型或基类型的“许多形态”.正如我们将看到的,在 C++ 中,多态性仅用于通过继承而相关联的类型的引用或指针. 继承 派生类(derived class)能够继承基类(baseclass)定义的成员,派生类可以无须改变而使用那些与派生类型具体特性不相关的操作,派生类可以

第五章.面向对象(上)

类:可被认为是一种自定义的数据类型,可使用类来定义变量,所有使用类定义的变量都是引用变量,所有的类是引用类型. Java程序使用类的构造器来创建该类的对象. Java支持面向对象的三大特征:封装.继承.多态: java提供了private.protected.public访问控制修饰符来实现封装,提供extends关键字让子类继承父类,有了继承就有了多态. 构造器用于对类的实例进行初始化操作,构造器支持重载,若多个重载构造器里包含了相同的初始化代码,可以把这些初始化代码放置在普通初始化块里完成,