本周学习笔记

Java中提供一个关键字extends,用这个关键字,可以让一个类和另一个类建立起父子关系。这类继承父类之后,就可以直接用父类公共的属性和方法。

子类继承父类子类可以得到父类的属性和行为,子类可以使用。(Java中子类更强大)

继承特点:

1.只支持单继承,即一个子类只允许有⼀个父类。

2. 子类可以拥有父类的属性和方法

3. 子类可以拥有自己的属性和方法

4. 子类可以重写覆盖父类的方法

子类有自己的构造器,不能继承父类的构造器,父类的构造器用于初始化父类对象。这类可以继承父类的私有成员,但不能直接访问。

Java中这类不能同时继承多个父类。

Java中所有类要么直接继承了Object,要么默认继承了Object,要么间接继承了Object。

在继承体系中,子类出现了和父类中一模一样的方法声明,就说子类这个方法是重写的方法。(@Override 重写注释 用于重写方法上,作为重写是否正确的校验注释)

子类中所有的构造器默认都会先访问父类中的无参构造器,再执行自己。

子类构造器中 super(有参构造器的形参) 可以调用父类有参构造器

this() 可以调用本类兄弟构造

相同包下的类互相可以直接访问,而不同包下的类必须先导包(import 包名.类名),才可以访问。

使用不同包下的相同的类名,默认只能导入一个类的包,另一个类要使用全名访问(包名.类名)。

权限修饰符(控制一个成员能被访问的范围):四种作用范围由小到大(private,缺省,protected,public)

final关键字是最终的意思,可修饰(类,方法,变量):

修饰类:表明该类是最终类,不能被继承; 修饰方法:表明该方法是最终方法,不能被重写; 修饰变量:表示该变量第一次赋值后,不能再次被赋值(有且仅能被赋值一次)

变量有两种: 一,局部变量 ;二,成员变量(实例成员变量;静态成员变量)

常量是使用了public static final修饰的成员变量,必须有初始化值,执行过程中不可被改变。

常量命名规范:英文字母全部大写,多个单词下划线连接。

信息的标志与信息的分类通过常量与枚举实现。

(实例名称建议全部大写。)

抽象类作为父类,用来被继承,子类必须重写抽象类的抽象方法,否则子类也必须定义为抽象类。emm,抽象类得到了抽象方法,但失去了创造对象的能力(没有方法体)。

final与abstract之间为互斥关系:抽象类作为模板被子类继承,final修饰的类不能被继承

接口用关键字interface定义

public interface 接口名{

常量

抽象方法

接口体现一种规范,规范一定是公开的。

其中常量 代码层面 public static final 可以省略不写;抽象方法 代码层面 public abstract可以不写。

接口与接口的关系:多继承,一个接口可以同时继承多个接口 (整合多个接口为同一接口)

接口的注意事项

1、接口不能创建对象2、一个类实现多个接口,多个接口中有同样的静态方法不冲突。

3、一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的。

4、一个类实现了多个接口,多个接口中存在同名的默认方法,不冲突,这个类重写该方法即可。

5、一个接口继承多个接口,是没有问题的,如果多个接口中存在规范冲突则不能多继承。

多态

同类型的对象,执行同一个行为,会表现出不同的行为特征。

父类类型 对象名 = new 子类构造器 ; 接口 对象名 = new 实现类构造器;

多态中成员访问特点:

方法调用:编译看左边,运行看右边。

变量调用:编译看左边,运行看左边。

多态的前提:有继承/实现关系’有父类引用指向子类对象,有方法重写。

内部类

.内部类就是定义在一个类里面的类,里面的类可以理解成(寄生),外部类可以理解成(宿主)。

public class People {

//内部类

public class Heart (

内部类的使用场景、作用

.当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构可以选择使用内部类来设计。

.内部类通常可以方便访问外部类的成员,包括私有的成员。

.内部类提供了更好的封装性,内部类本身就可以用 private protectecd 等修饰,封装性可以做更多控制。

静态内部类

.有 static 修饰,属于外部类本身。

.它的特点和使用与普通类是完全一样的,类有的成分它都有,只是位置在别人里面而已。

public class Outer {

//静态成员内部类

public static class Inner {

静态内部类创建对象的格式:

格式:外部类名.内部类名对象名= new 外部类名.内部类构造器;范例: Outer . Inner in = new Outer . Inner ();

成员内部类

●无 static 修饰,属于外部类的对象。

.JDK16之前,成员内部类中不能定义静态成员, JDK 16开始也可以定义静态成员了。

public class Outer {

//成员内部类

public class Inner {

成员内部类创建对象的格式:

格式:外部类名.内部类名对象名= new 外部类构造器. new 内部类构造器();范例: Outer . Inner in = new Outer (). new Inner ();

匿名内部类:

.本质上是一个没有名字的局部内部类,定义在方法中、代码块中、等。.作用:方便创建子类对象,最终目的为了简化代码编写。

格式: new Employee a = new Employee (){

类|抽象类名|或者接口名(){重写方法;

public void work (){

};

匿名内部类可以作为方法的实际参数进行传输。

常用API

Object的equals方法比字符串的equals方法更安全,主调为null返回false。

String:内容不可变、拼接字符串性能差。

StringBuilder:内容可变、拼接字符串性能好、代码优雅。

定义字符串用String.

拼接、修改等操作字符串用StringBuilder.

BigDecimal的作用

●解决浮点型运算精度失真问题。

BigDecimal 的对象如何获取

BigDecimal b1= BigDecimal . valueOf (0.1);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值