1. 类基础
面向对象、类及对象的概念就不多说了, 和 C++ 一样, 直接来看看 Java 中怎么使用类.
类是 Java 中的基本单元, 可以在类中定义变量和函数, 同时 Java 也规定了, 所有的变量和函数必须存在于类中.
定义一个类: 权限修饰符 class 类名 { 定义属性(成员变量) 定义方法(成员函数) }
创建对象:
类名 对象名 = new 类名();
备注: new 后面跟的其实不是类名, 而应该说成构造方法.
Java 类和 C++ 类一样, 也是有构造方法的, 用法也差不多, 不多赘述.
成员变量和局部变量的区别:
-
作用域 局部变量仅限定义它的方法; 成员变量在整个类内部都是可见的.
-
初始值 成员变量默认有一个初始值; 局部变量没有初始值.
-
当方法内的局部变量和该方法所属类的成员变量重名时, 优化调用局部变量(就近原则).
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() 就是一个匿名对象, 他没有名字.
匿名对象的特点:
-
匿名对象是没有被其它对象所引用.
-
使用一次就变成垃圾了, 被垃圾回收器收回了.
3. this
和 C++ 一样, 代表的是就是当前对象本身.
不过 Java 中还有特殊的作用: this 调用构造函数.
格式: this();
- 只能在构造方法中使用 this 关键字来调用所在类中的其它构造 方法.
- 在构造方法中使用 this 关键字时, 必须作为构造方法的第一条语句.
- 只能使用 this 关键字调用其它构造方法, 而不能使用方法名直接调用构造方法.
4. static
作用和 C++ 中的差不多, 不过 java 中除了可能修饰成员属性, 成员方法外, 它还能修饰代码块, 被称为静态代码块.
关于代码块的知识, 后面会单独拿一节笔记出来讲.
☠