Robin1985

导航

 

变量作用域

​ 一个类的实例变量和静态变量称为类变量或类属性。类变量只能声明一次,但是在一个方法内中可以声明相同的变量名。如果一个局部变量和一个类变量或成员变量具有相同的名字,那么局部变量优先,而同名的类变量或成员变量将被隐藏(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.age = age就是“将参数age的值赋给对象的属性age”

如果一个类有多个构造函数,最好尽可能使用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 }

定义Demo类包含了一个String属性。Demo和String之间的关系就是组合。组合实际上是聚集关系的一种特殊形式。如果一个对象只属于一个对象,那么它们之间的关系就称为组合。如果一个对象属于多个对象,那么它们之间的关系就是聚集关系。例如:一个学生有一个身份证号,身份证号与学生是唯一的,它们是组合关系。一个学生有一个地址,但是地址可以被多个学生所共享。所以它们之间的关系就是聚集关系。

类的设计技巧

  1. 一定要将数据设计为私有。

  2. 一定要对数据初始化。

  3. 不要在类中使用过多的基本数据类型。

  4. 不是所有的属性都需要独立的属性访问器或属性更改器。

  5. 将职责过多的类进行分解。

  6. 类名和方法名要能够体现它们的职责。

posted on 2017-03-23 14:20  Robin1985  阅读(74)  评论(0)    收藏  举报