有哪些可以做h5的网站,网站系统正在升级维护,wordpress alt 空,wordpress高级教程 pdf前言
1. 学习视频#xff1a;
尚硅谷Java零基础全套视频教程(宋红康2023版#xff0c;java入门自学必备)_哔哩哔哩_bilibili
2023最新Java学习路线 - 哔哩哔哩
第二阶段#xff1a;Java面向对象编程
6.面向对象编程#xff08;基础#xff09;
7.面向对象编程… 前言
1. 学习视频
尚硅谷Java零基础全套视频教程(宋红康2023版java入门自学必备)_哔哩哔哩_bilibili
2023最新Java学习路线 - 哔哩哔哩
第二阶段Java面向对象编程
6.面向对象编程基础
7.面向对象编程进阶
8.面向对象编程高级
正文
8.面向对象编程高级
8.1 static 修饰成员变量与方法 例如用户数量total设置为static每次同类型用户删除、添加都会减少总数量。下面是设置在构造器中实际开发中应该在删除、添加方法中设置。 这是因为我们自定义的类是属于引用数据类型的像数组可以打印,打印的是初始化的值null。但因为没有地址值toString()又要打印地址值所以打印toString()会空指针异常。 在java中int[] a; 或 Phone myPhone; 叫做 定义类名、对象名。int[] a new int[];或Phone myPhone new Phone(); 叫做对象初始化等于给对象赋值初始地址值。 指针是以地址作为值的变量。当我们Phone myPhone或int[] a实际上是指定了指针变量名和指针变量指向的内存空间上所存放的数据的类型。但是并没有给指针赋地址值。int[] a null;或Phone myPhone null;之后进行了初始化初始化值为null所以这个指针变量就是空指针。 8.2 单例Singleton的设计模式 饿汉式一开始就创建了对象。随着类的加载立即加载对象占用时间长。 懒汉式需要的时候才创建对象。随着类的加载在调用get方法时加载对象加载延迟 8.3 main()方法的理解 8.4 类的成员变量之四代码块 { }
代码块写在类的内部有一对大括号可以用或不用static修饰。一个类可以写多个代码块但是按照声明先后顺序执行。所以一般只写一个静态代码块、一个非静态代码块。 举例代码块可用可不用可以放在构造器或者显式赋值给属性赋值或者非静态代码块 举例代码块有必要使用多行代码才能实现一个功能且放在构造器不合适所以用静态代码块来实现与类的创建一同加载的功能。 8.5 实例变量赋值位置与赋值顺序 有父子继承关系的代码块和构造器的执行顺序由父及子静态先行。每代一样先普后构。先普通代码块后构造器 8.6 final 关键字的使用
final的理解最终的。final可以用来修饰的结构类、方法、变量。
具体说明 8.7 abstract(抽象概念) 关键字的修饰类、方法 抽象类不能构建对象但还是有构造方法有/无参数构造器。抽象方法必须包含在抽象类中才能保证这个抽象方法不会被调用。抽象方法可以由抽象类的子类去实现这个抽象方法的具体方法体。 5.1 abstract不能修饰变量、代码块、构造器。 8.8 模板方法设计模式与抽象的应用举例 8.9 interface(接口关键字)的使用 举例 匿名实现类不声明一个有名字类去实现一个接口的抽象方法。 就是不“class 类名 implements 接口名{ 抽象方法 }”。
直接利用接口的多态性“接口名 变量名 new 接口名(){ 重写抽象方法 }” 等于把“new 接口名(){ 重写抽象方法 }”看作 重写过抽象方法的“new 实现类对象” 我们经常选择3.创建接口匿名实现类的对象 和 4.创建接口匿名实现类的匿名对象这样的写法。 练习 8.10 JDK8 和 JDK9 中接口的新特性 在定义接口的时候一般不会使用JDK8中声明的静态方法、默认方法。更多的是以后用Java核心API的时候里面会写这样的方法。我们要知道怎么调用。 JDK9新特性接口内部 定义私有方法。可以把一些默认方法中的相似代码抽取出来组成私有方法仅供内部调用。 8.11 类的成员之五内部类 成员内部类像成员变量、成员方法一样定义在一个类内部的类。加static就是静态成员内部类。
成员内部类如果想要通过外部类访问内部类需要通过外部类对象去创建内部类对象格式 外部类名.内部类名 变量名 new 外部类名().new 内部类名();
静态成员内部类可以在不创建外部类对象的情况下被实例化格式 外部类名.内部类名 变量名 new 外部类名().内部类名();
成员内部类可以在外部类内被成员方法调用成员内部类也可以使用外部类的成员变量、方法。
静态内部类只能访问外部类的静态成员可以定义内部类的静态成员。非静态内部类不能定义静态成员。
局部内部类方法内部类是定义在方法中的类。只能在当前方法中被使用。 匿名内部类 方法的参数被定义为一个接口类型就需要先定义一个类来实现接口然后根据该类来进行对象实例化。除此之外还可以定义匿名内部类来实现接口。可以看作不定义接口实现类的名称直接新建一个接口实例对象且不命名这个对象就是接口的子类实例子类是匿名的需要实例化的内容写在{ }内。 举例
8.12 枚举类的使用自定义、enum
8.12.1 定义 8.12.2 JDK5.0 之前定义枚举类
成员成员变量、成员方法get获取、set设置、其他行为方法、构造器。
实例变量用 private final 修饰表示私有化禁止外界直接访问只能被该类的其他成员访问且在类内一旦赋值不可更改。
类内创建枚举类实例用public static final 修饰
public 允许外部直接访问该变量。
static 使外部可以使用类名.变量对象名的方式访问该变量对象。
final 禁止外部对该变量进行修改。
成员变量和实例对象变量的名称都是final修饰建议都大写。 8.12.3 JDK5.0 中定义枚举类使用enum关键字
JDK5.0中使用enum关键字定义的枚举类定义成员对象的关键字public static final可省略、new的步骤可简写构造器的关键字private可省略。且枚举类有一个默认的父类java.lang.Enum类。具体4个步骤 8.12.4 enum中的常用方法 8.12.5 使用枚举类实现接口
在枚举类中重写接口中的抽象方法即可。 每一个对象都重写接口中的方法 举例二使用枚举定义员工工作状态enum有默认构造器、默认toString方法和默认常用方法。因此在写好员工类之后只需要写这一行来定义员工状态。 8.13 注解
8.13.1 注解的概念 8.13.2 三个常用注解 划去的用法过时了 8.13.3 自定义注解 public interface 注解名{ 参数类型 参数值(); 参数类型 参数值(); ... 参数类型 参数值(); }
使用 8.13.4 元注解与自定义注解应用举例
元注解对现有的注解进行解释说明的注解。 8.14 Junit单元测试的使用 操作流程 或 用到的时候爆红了直接联网下载到本地 或 有的项目已经有了这个依赖包直接添加到其他模块使用 包含单元测试方法的类必须是public的。
在使用了Test的方法中可以在控制台输入数值 自定义测试模板 8.15 包装类
8.15.1 包装类的理解 8.15.2 基本数据类型与包装类的转换 8.15.3 基本数据类型、包装类 与 String类的转换 实际应用例子 特殊例子 8.15.4 包装类的缓存对象 可以比较引用类型的但是两个类型要么相同要么是父子类的关系Double和Integer是并列的两个类只有共同父类Number不能比较。
Integer和double比较的时候自动拆箱拆成int类型。1000和1000数字值比较结果相等。
因为拆箱直接拆比装箱要新建引用类型对象成本低所以Java规定这时优先拆箱。 Java三元表达式返回值类型要相同还有字符强转的功能返回值类型为两个返回值中类型精度更高的那个类型。 IDEA的使用二快捷键 IntelliJ IDEA 2022.1.3版本
IDEA的使用三Debug断点调试IntelliJ IDEA 2022.1.3版本