一个类的实例变量和静态变量称为类变量或类属性。类变量只能声明一次,但是在一个方法内中可以声明相同的变量名。如果一个局部变量和一个类变量或成员变量具有相同的名字,那么局部变量优先,而同名的类变量或成员变量将被隐藏(hidden)。
this引用
关键字this是指向调用对象本身的引用名。隐藏的静态变量可以简单地通过“类名.静态变量”的方式引用。隐藏的实例变量就需要使用关键字this来引用。关键字this的另一个常用方法是让构造函数调用同一个类的另一个构造函数。例如:
1 public class Person { 2 private String name; 3 private int age; 4 5 public Person(String name, int age) { 6 this.name = name; 7 this.age = age; 8 } 9 }
如果一个类有多个构造函数,最好尽可能使用this。通常,无参或参数少的构造函数可以用this调用参数多的构造函数。Java要求在构造函数中,语句this应在任何其他语句之前出现。例如:
1 public class Person { 2 private String name; 3 private int age; 4 5 public Person(){} 6 7 public Person(String name, int age) { 8 this(); 9 this.name = name; 10 this.age = age; 11 this(); 12 } 13 }
在示例中,将this()语句放在第一行是可以得,但是将this()方法最后一行将会报错。
Java提供了多层次的抽象。类抽象(class abstraction)是将类的实现和使用分离。类的创建者提供类的描述,让使用者明白如何才能使用类。类的使用者不需要知道类是如何实现的。实现的细节经过封装,对用户隐藏起来,这称为类的封装(class encapsulation)。类的实现就像一个对客户隐藏的黑匣子。
在真实世界中,所有的对象都是属性及动作相关联的。使用兑现个提高了软件的可重用性,并且使程序更易于开发和维护。Java程序设计涉及的是对对象的思考,一个Java程序可以看做是一个相互操作的对象集合。
对象的组合
一个对象可以包含另一个对象。这两个对象之间的关系称为组合(composition)。例如:
1 class Demo { 2 private String str; 3 }
类的设计技巧
-
一定要将数据设计为私有。
-
一定要对数据初始化。
-
不要在类中使用过多的基本数据类型。
-
不是所有的属性都需要独立的属性访问器或属性更改器。
-
将职责过多的类进行分解。
-
类名和方法名要能够体现它们的职责。
浙公网安备 33010602011771号