任务:家住南京市浦口区天润城的一位21岁男性小明骑着一辆蓝色的OFO自行车前往星火路9号的浦口外国语学校考试,使用价值8800的ThinkPad黑色电脑进行答题,10题选择题,2题判断题,5题作图题。
功能:1、小明骑着自行车去学校; 2、使用笔记本考试。
要求:使用封装和导入包。
首先我们需要对信息进行提取,经过归纳可以总结出5个主要的对象:Person;Bike;School;Computer;Exam。这五个主体分别建立class;部分程序如下:
Person 类
package com.dayuanit.user;
import com.dayuanit.tools.Bike;
public class Person {
private String name;
private String adds;
private String sex;
private int age;
private Bike bike;
public Person() { //构建无参的构造函数----很重要
}
public void goToSchool() {
bike.move(this);
}
public void setBike(Bike bike) {
this.bike = bike;
}
public Bike getBike() {
return bike;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
...//其他的get set 方法构建一致
}
Bike类
package com.dayuanit.tools;
import com.dayuanit.school.School;
public class Bike {
private String name;
private String color;
private School school;
public Bike() {}
public void move(Person person) {
System.out.println(person.getName() + this.getName() + school.getName() + ....);
}
public void setSchool(School school) {
this.school = school;
}
public School getSchool() {
return school;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
...
}
School类
package com.dayuanit.school;
public class School {
private String adds;
private String name;
public School() {}
public void setAdds(String adds) {
this.adds = adds;
}
public String getAdds() {
return adds;
}
}
package com.dayuanit.test;
import com.dayuanit.user.Person;
import com.dayuanit.tools.Bike;
import com.dayuanit.school.School;
public class Test {
public static void main(String[] args) {
Person person = new Person();
person.setName("小明");
person.setAge(21);
...
Bike bike = new Bike();
bike.setName("OFO");
bike.setColor("蓝色的");
School school = new School();
school.setName("浦口外国语大学");
school.setAdds("星火路9号");
bike.school = school;
person.goToSchool();
}
}
上述只是程序的一部分,主要考虑的是封装和导入包的概念,其中变量的定义全是用private修饰,需要提供set get方法进行赋值取值,同时,在定义类的时候养成定义无参构造函数的习惯,以便在后来修改程式的时候可以保证无参构造函数的定义!!!
包的导入除了可以用import关键字外,还可以使用如下方式:
com.dayuanit.school.School school = new com.dayuanit.school School();
这种方式的弊端需要每次在new出对象的时候都需要这种方式来进行导入包,不如使用import这种蜜糖方式!!!