欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

封装练习题-----编写程序描述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从业者
四、作业
主题: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方法。