Java里一些容易混淆的概念

时间:2021-04-13 08:12:46

本文章里的图片来源于

www.how2j.cn

(1)引用:是一种变量的类型,如果一个变量的类型为类类型,而不是基本类型(“整型”“浮点型”“字符型”“布尔型”)里的八种,则该变量为类类型,又叫引用。
是一个名词,不是动词

(2)指向:在Java里创建新对象后,需要有一个引用来指向该对象,否则就无法操作这个新建的对象,否则就称为垃圾对象,与引用相比,指向是一个动词,引用指向对象从而操作。

注:多个引用可以同时指向一个对象,但一个引用在一个时刻只能指向一个像

(3)方法重载:方法名称相同,但是每次传递的参数不同,如果每次传递的参数不同,则可设计为可变参数的重载方法,使用操作数组的方法

eg:public void attack(Hero...heros){
for(int i =0; i<heros.length;i++)
Systrm.out.println(name+"攻击了"+heros[i]);
}

(4)构造方法:(构造器),通过类创建一个对象时(实例化)是通过构造方法实现的,构造方法就相当于对一个新对象进行初始化的方法。
注:

  1. 构造方法 的名称与类相同,包括大小写
  2. 构造方法无返回类型
  3. 实例化一个对象时必然调用构造方法,如果不写,则会默认提供一个无参数的构造方法
  4. 构造方法也可以重载

(5)访问修饰符:Java里总共四类访问修饰符:“public”、“package/friendly/default”、“private”、“protected”
Java里一些容易混淆的概念
以Hero为例:
自身:就是指Hero自身
同包子类:比如ADHero、APHero等
其他类:不同包,不是子类,无继承关系

private:
Java里一些容易混淆的概念
package/friendly/default:
Java里一些容易混淆的概念
public:
Java里一些容易混淆的概念
protected:
Java里一些容易混淆的概念

Java里一些容易混淆的概念
修饰符的用法:
A.方法一般用public修饰,方便调用
B.被子类继承的方法一般用于protected保护
C.属性通常用private封装起来
D.package不常用
F.访问就是获取和修改
注:使用修饰符的原则就是作用域最小原则,能用private,就绝对不用protected

(6)类属性,当一个变量被static修饰时,就变为类属性,又叫做静态变量,对于类属性而言,所有对象的值都是相同的

(7)类方法(静态方法),对象方法(非静态方法),
访问类方法,不需要实例化对象,而访问对象方法,则必须要有一个对象

(8)单例模型:
A.饿汉式单例模型

package charactor;

public class GiantDragon {

//私有化构造方法使得该类无法在外部通过new 进行实例化
private GiantDragon(){

}

//准备一个类属性,指向一个实例化对象。 因为是类属性,所以只有一个

private static GiantDragon instance = new GiantDragon();

//public static 方法,提供给调用者获取12行定义的对象
public static GiantDragon getInstance(){
return instance;
}

}

饿汉式就是以空间换时间,先实例化一个对象,调用的时候直接使用就行

B.懒汉式单例模型

package charactor;

public class GiantDragon {

//私有化构造方法使得该类无法在外部通过new 进行实例化
private GiantDragon(){
}

//准备一个类属性,用于指向一个实例化对象,但是暂时指向null
private static GiantDragon instance;

//public static 方法,返回实例对象
public static GiantDragon getInstance(){
//第一次访问的时候,发现instance没有指向任何对象,这时实例化一个对象
if(null==instance){
instance = new GiantDragon();
}
//返回 instance指向的对象
return instance;
}

}

懒汉式就是以时间换空间,先不实例化,等到调用时再进行实例化

单例模式三要素
1. 构造方法要私有化
2. 静态属性(类属性)指向实例
3. public static getInstance()方法,返回第二步的静态属性