文章目录
- 1. 初始化赋值
- 2. 匿名对象
- 3. 练习
- 3.1. 习题一
- 3.2. 习题二
- 4. 总结
1. 初始化赋值
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的变量类型都是引用类型,如上节的 Person 和前面讲过的数组。
成员变量类型 | 初始值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0F |
double | 0.0D |
char | ‘\u0000’( 表示为空 ) |
boolean | false |
引用类型 | null |
举例说明:
创建一个学生类:
package default_package;/*** 学生类* @author 14532*/public class Student {public String name;//姓名public int age;//年龄public String course;//课程public String interest;//兴趣/*** 显示学生个人信息*/public void showInfo() {System.out.println("姓名:" + name);System.out.println("年龄:" + age);System.out.println("姓名:" + course);System.out.println("姓名:" + interest);}}
创建Test.java调用学生类,且不给它赋初值
package default_package;public class Test {public static void main(String[] args) {Student s = new Student();s.showInfo();}}
Test.java运行结果:
2. 匿名对象
我们也可以不定义对象的句柄(如先Student s = new Student();
然后s.showInfo();
),而直接调用这个对象的方法。这样的对象叫做匿名对象。
如:new Student().showInfo();
使用情况:
- 如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
- 我们经常将匿名对象作为实参传递给一个方法调用。
3. 练习
3.1. 习题一
习题1: 创建一个 Person 类,其定义如下:
要求:
(1) 创建 Person 类的对象,设置该对象的name 、 age 和 sex 属性,调用 study 方法,输出字符串“ studying” ,调用 showAge() 方法显示 age 值,调用 addAge() 方法给对象的 age 属性值增加 2 岁。
(2) 创建第二个对象,执行上述操作,体会同一个类的不同对象之间的关系。
答案:
Person类
package default_package;public class Person2 {public String name;public int age;public int sex;//性别,0男1女public void study() {System.out.println("studying");}public void showAge() {System.out.println(age);}public int addAge(int i) {age += i;return age;}
}
Test.java:
package default_package;public class Test {Person2 p = new Person2();p.name = "Lucy";p.age = 11;p.sex = 1;p.study();int a = p.addAge(2);System.out.println("a:" + a + " p.age:" + p.age);}
Test.java运行结果:
3.2. 习题二
习题2: 利用面向对象的编程方法,设计类 Circle 计算圆的面积。
答案:
Circle类
package default_package;public class Circle {/*** 面积的计算方法* @param r* @return*/public double area(double r) {return 3.14 * r * r;}
}
Test.java:
package default_package;public class Test {double area = new Circle().area(2);System.out.println("半径为2的圆的面是:" + area);}
Test.java运行结果:
注意:
类的访问机制:
(1) 在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外:static 方法访问非 static 的成员变量,编译不通过。)
错误写法:
正确写法:
package default_package;static int t = 0;public static void main(String[] args) {System.out.println(t);}
(2) 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。
4. 总结
面向对象思想“落地”法则(一)
- 关注于类的设计,即设计类的成员:属性 、方法
- 类的实例化,即创建类的对象(比如:
Person p = new Person();
) - 通过
对象.属性
、对象.方法
执行