封装练习题-----编写程序描述IT从业者
程序员文章站
2024-03-17 16:04:16
...
一·、问题描述
以面向对象的思想,编写自定义类描述IT从业者。设定属性包括:姓名,年龄,技术方向,工作年限;
方法包括:工作
二、要求:
1、设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问
解决办法:在属性前面加上关键字private私有化,设置get方法进行取值操作,set进行赋值操作
2、限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。
解决办法:在setAge方法中设置if语句(小于十五岁设置提示,并默认年龄为15)
3、限定“技术方向”是只读属性
解决办法:即使属性technical_direction只设置get取值方法,删除set赋值方法
4、工作方法通过输入参数,接收工作单位和职务,输出个人工作信息
解决办法:在work方法中接收工作单位和职务,输出效果图的个人信息
5、编写测试类,测试IT从业者类的对象及相关方法(测试数据信息自定义)
解决办法:实例化对象。
三、运行效果图:
四、作业
主题:IT从业者
属性:姓名,年龄,技术方向,工作年限
方法:工作
代码块:
public class practitoner{
//属性
private String name; // 姓名
private int age; // 年龄
private String technical_direction; // 技术方向
private int working_life;// 工作年限
//构造方法,用于接收姓名、年龄、技术方向、工作年限参数
Practitioner(String name,int age,String technical_direction,int working_life){
this.name=name;
this.setAge(age); // 因为年龄需要进行判断是否大于15,因此借助this将年龄传递给set方法里面进行判断
this.technical_direction=technical_direction;
this.working_life=working_life;
}
// get、set进行取值操作
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 年龄
public int getAge() {
return age;
}
public void setAge(int age) {
if(age>=15) {
this.age = age;
}else {
//默认值
System.out.println("年龄信息无效,已修改默认年龄为15");
this.age=15;
}
}
// 技术方向是只读属性,就只能访问,不能赋值,删除set方法
public String getTechnical_direction() {
return technical_direction;
}
// 工作年限
public int getWorking_life() {
return working_life;
}
public void setWorking_life(int working_life) {
this.working_life = working_life;
}
//建立工作的方法,传入工作单位和职务
public String work(String post,String workunit) {
String count="姓名:"+name+"\n年龄:"+age+"\n技术方向"+technical_direction+"\n工作年限"
+working_life+"\n目前就职于:"+post+"\n职务是:"+workunit;
return count;
}
}
5、编写测试类
public class Practitioner_Test {
public static void main(String[] args) {
// 实例化对象1
Practitioner A1=new Practitioner("马未龙",35,"数据库维护",10);
System.out.println(A1.work("腾讯实业","数据库维护工程师"));
System.out.println("------------------------");
// 实例化对象2
Practitioner A2=new Practitioner("张凯",11,"JAVA开发",1);
System.out.println(A2.work("鼎盛科技","JAVA开发工程师"));
}
}
分析:
(1)构造方法是通过对象传递参数的,对类进行初始化。
(2)方法中形参是通过调用方法里面形参来传递参数的
(3)对象中参数传递给构造方法中age,age通过this传递给给成员变量age,但是这样这个值并不参与set方法中的判断,因此可以通过this.setAge(age),调用setAge方法。
上一篇: 面向对象---多态