实验四:面向对象编程实验(2)—封装、继承和包

实验四

实验项目:面向对象编程实验(2)—封装、继承和包

实验时间:2019.4.15

实验目的

  1. 掌握继承、包、与类封装性的概念与用法
  2. 学习编写具有包的面向对象的应用程序
  3. 掌握Java封装性中访问控制的用法。

实验内容:

必做

  1. 完成并理解书中71页的J_Teacher.java例题。
    1)理解隐式类型转换和显式类型转换的区别。
    2)尝试创建一个Student类,根据类的继承特点,试问该类是否可以继承J_Employee?如果不能,可否设置一个Student类和Teacher类所共有的父类?编程实现

1.1) 区别:隐式类型转换将类型为子类型得数据转换成为类型为其父类型的数据时,可以不需要强制类型转换运算符”( )”; 显式类型转换将类型为子类型得数据转换成为类型为其父类型的数据时,需要强制类型转换运算符”( )”。
1.2) 无法继承J_Employee;重新定义一个J_Employee。java文件

源文件:

package ex04;

public class J_Employee 
{
	public int m_workyear;
	//工作年限
	public J_Employee()
	{                                         
		m_workyear = 1;
	}                          //构造方法结束
}                            //类结束

package ex04;


public class J_Teacher extends  J_Employee  
{
	public int m_classHour;          //授课的课时                     
	
	public J_Teacher()
	{                            
		m_classHour = 96;
	}                                    //构造方法结束

	public void mb_printInfon()
	{                        
		System.out.println("该教师的工作年限为:"+ m_workyear);
		System.out.println("该教师的授课课时为:"+ m_classHour);
		
	}//方法体mb_printInfon结束
	public static void main(String[] args) 
	{              
		J_Teacher  tom = new J_Teacher();
		tom.mb_printInfon();                     
		
	}                                               //方法结束
	
}                                            //类结束

package ex04;

public class Student extends J_Employee {

		public int studyYears;   //学习年长
		//工作年限
		public Student()
		{                                         
			studyYears = 15;
		}                          //构造方法结束
		public void mb_printInfon()
		{   
			System.out.println("该学生的学习年限为:"+studyYears);
			System.out.println("该学生工作年限为:"+m_workyear);
	}
		public static void main(String[] args) {
			Student zhangsan = new Student();
			zhangsan.mb_printInfon();
		}

}

运行结果:
J_Teacher.java
在这里插入图片描述

Student.java
在这里插入图片描述

  1. 练习包的建立和使用用法:
    1)生成一个类Employee,域变量为name和age;类包为asia.china;
    2)生成一个类Teacher, 继承Employee类;类包为asia.china.guangdong ,域变量为工作年限(workYears)和职称(jobTitle);成员方法包括构造方法与getter方法;
    3)生成测试类TestTeacher, 类包为asia.china.guangdong.zhuhai;在main主方法中创建Teacher类的对象jilinTeacher_zhangsan, 初始化姓名、年龄,工作年限和职称,并测试修改职称信息并显示。

源码:
Employee.java

package ex04.asia.china;

public class Employee {
	//域变量为name和age;
	public String name;
	public int age;
}

Teacher.java

package ex04.asia.china.guangdong;

import ex04.asia.china.Employee;

public class Teacher extends Employee {
	/*
	 *域变量为工作年限(workYears)和职称(jobTitle);成员方法包括构造方法与getter方法; 
	 */
	private int workyears;
	
	private String iobTitle;
	
	public Teacher(int workyears,String iobTitle) {
		this.workyears = workyears;
		this.iobTitle = iobTitle;
		
		
	}

	public int getWorkyears() {
		return workyears;
	}

	//public void setWorkyears(int workyears) {
		//this.workyears = workyears;
	//}

	public String getIobTitle() {
		return iobTitle;
	}

	//public void setIobTitle(String iobTitle) {
	//	this.iobTitle = iobTitle;
	//}
	
}

TestTeacher.java

package ex04.asia.china.guangdong.zhuhai;

import ex04.asia.china.guangdong.Teacher;

public class TestTeacher {

	public static void main(String[] args) {
		Teacher jilinTeacher_zhangsan = new Teacher(20,"老师");
		jilinTeacher_zhangsan.name = "jilin";
		jilinTeacher_zhangsan.age = 30;
		
		System.out.println("年龄:"+jilinTeacher_zhangsan.age);
		
		System.out.println("姓名:"+jilinTeacher_zhangsan.name);
		
		System.out.println("工作年限:"+jilinTeacher_zhangsan.getWorkyears());
		
		System.out.println("职称:"+jilinTeacher_zhangsan.getIobTitle());
	}

}

运行结果:
在这里插入图片描述

实验总结:
学习巩固了继承的使用方法,复习了封装getter方法的使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值