013、类、匿名对象、this、static

Par @Martin dans le
Tags :

1. 类基础

面向对象、类及对象的概念就不多说了, 和 C++ 一样, 直接来看看 Java 中怎么使用类.

类是 Java 中的基本单元, 可以在类中定义变量和函数, 同时 Java 也规定了, 所有的变量和函数必须存在于类中.

定义一个类: 权限修饰符 class 类名 { 定义属性(成员变量) 定义方法(成员函数) }

创建对象:
类名 对象名 = new 类名(); 备注: new 后面跟的其实不是类名, 而应该说成构造方法.

Java 类和 C++ 类一样, 也是有构造方法的, 用法也差不多, 不多赘述.

成员变量和局部变量的区别:

  1. 作用域 局部变量仅限定义它的方法; 成员变量在整个类内部都是可见的.

  2. 初始值 成员变量默认有一个初始值; 局部变量没有初始值.

  3. 当方法内的局部变量和该方法所属类的成员变量重名时, 优化调用局部变量(就近原则).

2. 匿名对象

普通申明一个对象是这样的:
A a = new A();

那么这个时候 a 就是类 A 的一个对象, 这个对象名字就是 a.

再来看下面一个例子:
method(A a);

假设 method 是一个方法, 他需要传递一个对象来作为参数, 那么这个时候有 2 种方法:

  • 方法1:
    A a =new A();
    method (a);
  • 方法2:
    method (new A());

方法2中 new A() 就是一个匿名对象, 他没有名字.

匿名对象的特点:

  1. 匿名对象是没有被其它对象所引用.

  2. 使用一次就变成垃圾了, 被垃圾回收器收回了.

3. this

和 C++ 一样, 代表的是就是当前对象本身.

不过 Java 中还有特殊的作用: this 调用构造函数.

格式: this();

  • 只能在构造方法中使用 this 关键字来调用所在类中的其它构造 方法.
  • 在构造方法中使用 this 关键字时, 必须作为构造方法的第一条语句.
  • 只能使用 this 关键字调用其它构造方法, 而不能使用方法名直接调用构造方法.

4. static

作用和 C++ 中的差不多, 不过 java 中除了可能修饰成员属性, 成员方法外, 它还能修饰代码块, 被称为静态代码块.

关于代码块的知识, 后面会单独拿一节笔记出来讲.