永不服输的Java之路---重学Java (第六章) 下篇

如若文章中出现冲突,或者出现错误,请联系 QQ:2669157689 指出我的问题。谢谢~

3. 对象创建和使用

1. 什么是对象
① 类和对象的关系:
类(class) — 是对某一类事物的描述
对象(object) — 是实际存在的某类事物的个体,也称为实例(instance)
类是创建对象的模板,对象是类的实例
② 对象的创建:
语法格式: 类名 对象名 = new 构造器
示例:

Test test = new Test();

2. 构造器
① 构造器 (构造函数 / 构造器, Constructor):
具有与类相同的名称、不含返回值类型、不能在方法中用return语句返回一个值、一般访问权限为public,
在一个类中,具有上述特征的方法就是构造器
② 构造器的作用:
完成对象的创建,即完成对象的实例化、一般使用构造器来完成对成员变量的初始化
③ 默认的构造器:
在 Java 中,每个类都至少要有一个构造器,如果程序员没有在类里定义构造器,系统会自动为这个类产生一个默认的访问权限为 public 且参数列表为空的构造器
一旦编程者为该类定义了构造器,系统就不再提供默认的构造器
3. 匿名对象
① 概念:创建完对象,在调用该对象的方法时,也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫匿名对象
② 使用匿名对象的情况:如果对一个对象只需要进行一次方法调用
4. 对象创建的内存模型
① 引用类型变量
除了8种基本数据类型的变量,其他变量都是引用类型变量
类(class) :Person p;
接口(interface):Animal a;
数组:int[ ] c;
② 引用类型变量的内存模型
示例:

Person p = new Person("zhang", 33, "male");
Person q = new Person("lisi", 44, "male");

永不服输的Java之路---重学Java (第六章) 下篇_第1张图片

4. this关键字

1. this关键字
① 代表对象自身的引用:一个引用、指向调用该方法的当前对象
② 通常在类的方法定义中使用
2. 用this关键字的情况
① 方法中的变量与成员变量重名
② 在一个构造器中,调用其它重载的构造器
③ 返回当前对象的引用

5. static关键字

1. static关键字
① static可以修饰的元素:属性、方法、代码块
2. 需要注意的问题
只能修饰类成员,不能修饰局部变量。
3. static修饰的变量 — 静态变量
① 所有对象共享,也称为类变量
② 用static修饰的成员变量,它们在类被载入时创建,只要类存在,static变量就存在
③ 两种方式访问:
1.直接访问:类名.属性
2.实例化后访问:对象名.属性
4. static修饰的方法 — 静态方法
不需要实例化,可以直接访问,也称为类方法
5. static方法的作用
① 简化方法的使用
② 便于访问静态属性
6. 注意事项
① 静态方法里只能直接访问静态成员,而不能直接访问类中的非静态成员
② 静态方法中不能使用 this、super 关键字
③ 静态方法不能被非静态方法覆盖,静态方法不能修饰构造器
7. static修饰的代码块 — 静态代码块
① 一个类中由 static 关键字修饰的,不包含在任何方法体中的代码块
② 当类被载入时,静态代码块被执行,且只被执行一次
③ 静态块经常用来进行类属性的初始化
8. 变量的作用域
① 类变量
用static修饰的成员变量,它们在类被载入时创建,只要类存在,static变量就存在
② 实例变量
1.类体中声明的成员变量为全局变量
2.全局变量在类的整个生命周期中都有效
③ 局部变量
1.方法体中声明的变量,方法中的参数,或代码块中声明的变量,都是局部变量
2.局部变量只在方法调用的过程中有效,方法调用结束后失效
④ 变量初始化的顺序
1.隐式赋予变量默认值:成员变量
2.显式赋予初始值
3.通过构造器体赋予新值
4.各类型变量默认初始化值表
永不服输的Java之路---重学Java (第六章) 下篇_第2张图片
9. 单例模式
① 单例模式(singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点
② 单例模式要点:
1.某个类只能有一个实例
2.它必须自行创建这个示例
3.必须自行向整个系统提供这个实例
③ 单例模式实现:
1.拥有一个私有构造器
2.提供一个自身静态私有的成员变量
3.提供一个公有的静态公有的方法

public class Singleton {
  //在自己内部定义自己的一个实例,只供内部调用
  private static Singleton instance = new Singleton();
  private Singleton() {//do something
  }
  //这里提供了一个供外部访问本class的静态方法,可以直接访问
  public static Singleton getInstance() {
  return instance;
  }
}

小结:

  1. 面向对象的思想
  2. 类的定义:什么是类、类的属性、方法定义、方法重载
  3. 对象的创建和使用:创建对象、构造器、对象创建的内存模型
  4. this关键字
  5. static关键字

以后每次写个小结吧

你可能感兴趣的:(Java入门,小白)