Java基础知识理解

创建对象的标准:
类名称 对象名 = new 类名称()
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。
new 类名称 ()
注意事项: 匿名对象只能使用唯一的一次,下次再用不得不创建新的对象
 
数组的长度不可以改变
但是ArrayList集合长度可以随意改变。
对于ArrayList来说,有一个尖括号<E>代表泛型
泛型:就是装在集合当中的所有元素,全都是统一的什么类型
注意: 泛型只能是引用类型,不是基本类型
 
 
字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中
对于基本类型说 :==是进行数值的比较
对于引用类型说 :==是进行地址值的比较
 
equals注意事项:
  1. 任何对象都能用Object进行接收
  2. equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样
  3. 如果比较双方一个常量一个变量,推荐把常量字符串写在前面
推荐:"abc".equals(str) 不推荐: str.equals("abc")
 
局部变量: 直接写成员变量
本类的成员变量:this.成员变量
父类的成员变量:super.成员变量
 
重写(Override) : 方法的名称一样,参数列表【也一样】。覆盖、覆写
重载():方法的名称一样,参数列表【不一样】。
 
super关键字的三种用法:
  1. 在子类的成员方法中,访问父类的成员变量
  2. 在子类的成员方法中,访问父类的成员方法
  3. 在子类的构造方法中,访问父类的构造方法
 
super关键字用来访问父类内容,而this关键字用了访问本类内容,用法也有三种:
  1. 在本类的成员方法中,访问本类的成员变量
  2. 在本类的成员方法中,访问本类的另一个成员方法
  3. 在本类的构造方法中,访问本类的另一个构造方法
this(...)调用也必须是构造方法的第一个语句,唯一一个。
super和this两种构造调用,不能同时使用
 
接口定义抽象方法:
格式: public abstract 返回值类型 方法名称(参数列表);
注意事项:
  1. 接口当中的抽象方法,修饰符必须是两个固定的关键字:public abstract
  2. 这两个关键字修饰符,可以选择性地省略
  3. 方法的三要素,可以随意定义
接口使用步骤:
  • 接口不能直接使用,必须有一个“实现类”来“实现”接口
格式: public class 实现类名称 implements 接口名称 { }
  • 接口的实现类必须覆盖重写(实现)接口中所有的抽象方法
实现:去掉abstract关键字,加上方法体大括号
  • 创建实现类的对象,进行使用
注意事项:
如果实现类并没有覆盖重写接口中所有的抽象方法,那么这个实现类自己就必须是抽象类
 
1、成员变量其实是常量,格式:
【public】[static] [final] 数据类型 常量名称 = 数据值;
注意:
常量必须进行赋值,而且一旦赋值不能改变
常量名称完全大写,用下划线进行分隔
2、接口中最重的就是抽象方法,格式:
[public] [abstract] 返回值类型 方法名称(参数列表)
注意:实现类必须覆盖重写接口所有的抽象方法,除非实现类是抽象类
3、从Java8开始,接口里允许定义默认方法,格式:
【public】default 返回值类型 方法名称(参数列表) { 方法体 }
注意:默认方法也可以被覆盖重写
4、从Java8开始,接口里允许定义静态方法,格式:
【public】static 返回值类型 方法名称(参数列表) { 方法体 }
注意:应该通过接口名称进行调用,不能通过实现类对象调用接口静态方法
5、从Java9开始,接口里允许定义私有很乏,格式:
普通私有方法:private 返回值类型 方法名称(参数列表) { 方法体 }
静态私有方法:private static 返回值类型 方法名称(参数列表) { 方法体 }
注意:private的方法只有接口自己才能调用,不能被实现类或别人使用
 
多态性:
格式:
父类名称 对象名 = new 子类名称();
接口名称 对象名 = new 实现类名称();
 
final关键字代表最终、不可改变的
常见四种用法:
  1. 可以用来修饰一个类(格式)
public final class 类名称 { }
注意: 一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写
对于类、方法来说:abstract关键字和final关键字不能同时使用,因为矛盾
  1. 可以用来修饰一个方法(格式)
  2. 还可以用来修饰一个局部变量(格式)
  3. 还可以用来修饰一个成员变量(格式)
 
定义一个类的时候,权限修饰符规则:
  • 外部类:public / (default)
  • 成员内部类:public / protected / (default)/ private
  • 局部内部类: 什么都不能写

posted @ 2021-04-18 22:16  Jie0525  阅读(26)  评论(0编辑  收藏  举报