JavaSE基础笔记五

第四章 面向对象(二)

1.面向对象的特征二:继承性

1.为什么要有继承性:减少代码的冗余

2.通过“class A extends B"类实现类的继承

子类(派生类):A   父类:(或基类 SuperClass) :B

3.子类继承父类后,父类中声明的属性、方法,子类就可以获取到

明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使子类不可以直接调用罢了

子类除了通过继承,获取父类的结构之外,还可以定义自己的特有的成分

extends:子类是对父类功能的“扩展”,明确子类不是父类的子集

4.java中类的继承性只支持单继承:一个类只能继承一个父类。反之,一个父类可以有多个子类

5.子父类是相对的概念


方法的重写:

重载与重写

重载:同一个类 同一个方法名 不同的参数列表 注:方法的重载与方法的返回值无关

>构造器是可以重载的

重写:(前提:在继承的基础上,子类在获取了父类的结构以后,可以对父类中同名的方法进行“重构“)

方法的重写:格式:修饰符 返回值类型 方法名 (参数列表) {  }

1.前提:有子类继承父类

2.子类继承父类以后,若父类的方法对子类不适用,那么子类可以对父类的方法重写(override overwrite)

3.重写规则:1)要求子类方法的“返回值类型 方法名(参数列表)”与父类的方法一样

2)子类方法的修饰符不能小于父类方法的修饰符

3)若父类的方法抛异常,那么子类方法抛的异常类型不能大于父类的

4)子父类的方法必须同为static或同为分static的


2.super关键字

1.相较于关键字this,可修饰属性,方法,构造器。

2.super修饰属性、方法:在子类的方法、构造器中,通过super.属性或者super.方法的形式,显式的调用父类的指定的属性或者方法,尤其是,当

子类和父类有同名的属性或方法时,调用父类中的结构,一定要用”super.“

3.通过”super(形参列表)“,显式的在子类的构造器中,调用父类指定的构造器。

>任何一个类(除object类)的构造器的首行,要么显式的调用本类中重载的其他的构造器”this(形参列表)“或显式的调用父类中指定的构造器

”super(形参列表)“,要么默认的调用父类空参的构造器”super()”

>建议在设计类时,提供一个空参的构造器


3.子类对象实例化的全过程

子类对象实例化的全过程

例:

public class TestDog {

private void mian() {

Dog d = new Dog();

d.setAge(10);

d.setName("狗狗");

d.setHostName("小明");

System.out.println("name:" + d.getName()+ " age:" + d.getAge() + "hostName" + d.getHostName());

}

}

//生物

class Creator{

private int age;

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public Creator() {

super();

}

}

//动物类

class Animal extends Creator{

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Animal() {

super();

}

}

//狗

class Dog extends Animal{

private String hostName;

public String getHostName() {

return hostName;

}

public void setHostName(String hostName) {

this.hostName = hostName;

}

public Dog() {

super();

}

}

4.面向对象的特征三:多态性

1.多态性的表现:①方法的重载与重写   ②子类对象的多态性

2.使用前提:①要有继承关系 ②要有方法的重写

3.格式:Person p = new Man();//向上转型

//虚拟方法调用:通过父类的引用指向子类的对象实体,当调用方法时,实际执行的是子类重写父类的方法

p1.eat();

p1.walk();

4.注意点:编译时,认为p是Person类型的,故只能执行Person里才有的结构,即Man里特有的结构不能调用

子类对象的多态性,并不适用于属性。

5.向下转型:

1)使用强转符:()

2)向下转型前,最好先判断 instanceof


Object类

1.java.lang.Object,是所有类的根父类。

2.Object类仅有一个空参的构造器 public Object(){ }

3.关于方法:

1)equals(Object obj)

public boolean equals(Object){

return(this == obj);

}

==

1.基本数据类型:根据基本数据类型的值判断是否相等,相等返回true,反之返回false

注:两端数据类型可以不同,在不同的情况下,也可以返回true

2.引用数据类型:比较引用数据类型变量的地址值是否相等

equals();

①只能处理引用类型变量 ②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等

>像String包装类 File类 Date类 这些重写Object类的equals()方法,比较是两个对象的“实体内容”是否完全相同

>若我们自定义一个类,希望比较两个对象的属性值都相同的情况下返回true的话,就要重写Object类的equals(Object obj)方法

2)toString方法

当我们要输出一个对象的引用时,会调用此方法

①当我们没有重写Object类的toString方法时,打印的就是对向所在类,以及对象实体在堆空间的位置

②一般我们需要重写Object类的toString方法,将此对象的各个属性值返回

③像String类、Date、File类、包装类都重写了toString方法

包装类:

基本数据类型由于不是类,不能使用java类库里面提供的大量的方法,所以在设计上,我们让每一个基本数据类型都对应一个类,同时数据储存范围不变。

此时相当于基本数据类型具有了类的特点,这些类即为包装类(wrapper或封装类)

基本数据类型                                                  包装类

boolean                                                          Boolean

byte                                                             Byte

short                                                            Short

int                                                              Integer

long                                                             Long

char                                                             haracter

float                                                            Float

double                                                           Double

简易版

1.基本数据类型与对应的包装类有自动装箱、自动拆箱

如:int i = 10;

Integer = i1 = i  //装

int j = i1; //拆

2.基本数据类型、包装类  --->    String类:调用String类的重载的valueOf(Xxx xxx);

String类--->基本数据类型、包装类:调用相应的包装类的parseXxx(String str);

注意:String str = "123";

int i = (int)str;              是错误的


时间: 2024-08-03 16:21:06

JavaSE基础笔记五的相关文章

JavaSE基础笔记513

JavaSE笔记整理 java概述 1. 人机交互 人机交互:是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程. 交互方式 图形化界面:这种方式简单直观,使用者易于接受,容易上手操作. 命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作.较为麻烦,需要记住一些命令. 2. 键盘功能键介绍 这些按键要求的不是认识:而是常用. ′ Tab *** 缩格 ′ 空格 Enter ****** ′ Window ′ Shift *** (C

JavaSE基础笔记六

第五章 面向对象三 1.static关键字 1.static:静态的,可用来修饰属性,方法,代码块,内部类 2.static修饰属性(类变量): ①由类创建的所有的对象,都共用这一个属性 ②当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用.vs实例变量(非static修饰的属性,各个对象各自拥有一套副本) ③类变量随着类的加载而加载.而且独一份 ④静态的变量可以直接通过"类.类变量"的形式来调用 ⑤类变量的加载是要早于对象,所以当有对象以后,可以"对象.类变量

Oracle基础笔记五

第五章 分组函数 1.什么是分组函数? 分组函数作用于一组数据,并对一组数据返回一个值. 类型:AVG COUNT MAX MIN STDDEV SUM 2.AVG(平均值)和 SUM (合计)函数: 可以对数值型数据使用AVG 和 SUM 函数. SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary) FROM   employees WHERE  job_id LIKE '%REP%'; 3.MIN(最小值)和 MAX(最大值)函数

JavaSE基础笔记四

第三章 面向对象(一) 1.(了解)面向对象和面向过程 2.面向对象的编程关注于类的设计 1)一个项目或者工程,不管多么庞大,一定是由一个一个的类构成 2)类是抽象的,好比是制造汽车的图纸,车是由图纸制造的,其实就是类的实例化 3完成一个项目(功能)的思路 1)所需要完成的功能对应的类的对象是否存在 2)若存在,则通过对象直接调用对应的类中的属性或者方法即可 3)若不存在,则要创建类的对象,甚至说类都不存在,就需要设计类 4.面向对象编程的三条主线: 1)类及类的构成成分:属性 方法 构造器 代

JavaSE基础笔记八

第六章 异常处理 1.体系结构 java.lang.Object |----java.lang.Throwable |----java.lang.Error:错误,java程序对此无能为力,不显式的处理 |----java.lang.Exception:异常,需进行处理 |----RuntimeException:运行时异常 |----1.ArrayIndexOutBoundsException 2. NullpointerException 3.ArithmeticException 4.Cl

JavaSE基础笔记十二

第十一章 多线程 理解程序.进程.线程的概念 程序可以理解为静态的代码. 进程可以理解为执行中的程序. 线程可以理解为进程的近一步细分,程序的一条执行路径. 2.如何创建java程序的进程(重点) 方式一:继承于Thread类 ①创建一个继承于Thread的子类 ②重写Thread类的run()方法,方法内实现此子线程要完成的功能 ③创建一个子类的对象 ④调用线程的start():启动此线程,调用相应的run()方法 ⑤一个线程只能够执行一次start 方式二:实现Runnable接口 ①创建一

JavaSE基础笔记十三

第十三章 java反射机制 1.如何创建Class的实例 1.1过程:源文件经过编译(javac.exe)后,得到一个或多个.class文件, .class文件经过运行(java.exe),就需要进行类的加载(通过JVM的类的加载器),记载到内存中的缓存,每一个放入缓存中的.class文件就是一个Class的实例 1.2Class的一个对象,对应着一个运行时类,相当于一个运行时类本身充当了Class的一个实例. 1.3java.long.Class是反射的源头.接下类涉及到反射的类都在java.

JavaSE基础笔记九

第七章 集合 1.对象的存储:①数组(基本数据类型&引用数据类型) ②集合(引用数据类型) 数组存储数据的弊端:1.一旦创建,其长度不可变2.真实的数组存放的对象的个数是不可知 2.集合框架: Collection接口: |----List接口:存储有序的,可重复的元素 相当于"动态"数组 新增的方法:删除remove(int index)修改set(int index,Object obj)获取get(int index) 插入add(int index,Object obj

JavaSE基础笔记七

面向对象的总结: 面向对象的三条主线 1.类及类的成分 2.面向对象的三大特性 3.其他关键字:this super import package static final interface 1.java程序是关注类的设计.类从代码的角度讲:并列关系.从执行.设计的角度:关联关系,继承关系,聚合关系 2.类的成分:属性 方法 构造器 代码块 内部类 2.1属性:      ①变量的分类:成员变量(属性 Field)&局部变量9(方法的形参.方法的内部.代码块内部) 基本数据类型(8中)&