实验9 面向对象特征一:封装
一、实验目的
1. 掌握封装的概念。
2. 掌握封装的实现思路和方法.
二、实验内容
1.请指出下面代码中存在的错误,并说明错误原因。
01class Teacher1 {
02public Techer1() {}
03}
04
05class Teacher2 {
06public void Teacher2(String name) {}//普通函数
07}
08
09public class TeacherTest {
10public static void main(String[] args) {
11Teacher1 t1 = new Teacher1();
12Teacher2 t2 = new Teacher2("Mr lee");//不存在带参数的构造方法
13}
14}
2.请编码实现需求:
使用封装的思路编写一个类Student1,代表学员,要求:
(1)具有属性:姓名、年龄,其中年龄不能小于16岁,否则输出错误信息。
(2)具有方法:自我介绍,负责输出该学员的姓名、年龄。
编写测试类Student1Test进行测试,看是否符合要求。
package cn.test;
import java.util.Scanner;
public class Student1Test {
public static void main(String[] args){
Student1 st=new Student1("小明",12);
st.introducation();
}
public static class Student1{
private String name;
private int age;
public Student1(String nm,int ag){
name=nm;
age=ag;
}
public void introducation(){
System.out.println("姓名:"+name);
if(age<16){
System.out.println("输入的年龄不合要求!");
}else{
System.out.println("页数:"+age);
}
}
}
}
3.请编码实现需求:
使用封装的思路编写一个类Student2,代表学员,要求:
(1)具有属性:姓名、年龄、性别、专业。
(2)具有方法:自我介绍,负责输出该学员的姓名、年龄、性别以及专业。
(3)具有两个带参数的构造方法:
第一个构造方法中,设置学员的性别为男、专业为HENU,其余属性的值由参数给定。
第二个构造方法中,所有属性的值都有参数给定。
编写测试类Student2进行测试,分别以两种方式完成对两个Student2对象的初始化工作,并分
别调用它们的自我介绍方法,看看输出是否正确。
package cn.test;
import java.util.Scanner;
public class Student2Test {
public static void main(String[] args){
Student2 st=new Student2("小明",12);
st.introducation();
Student2 st1=new Student2("小红",36,"女","电子电气");
st1.introducation();
}
public static class Student2{
private String name;
private int age;
private String sex;
private String poss;
public Student2(String nm,int ag){
name=nm;
age=ag;
sex="男";
poss="计算机";
}
public Student2(String nm,int ag,String sx,String po){
name=nm;
age=ag;
sex=sx;
poss=po;
}
public void introducation(){
System.out.println("姓名:"+name+" 性别:"+sex+" 专业:"+poss);
if(age<16){
System.out.println("输入的年龄不合要求!");
}else{
System.out.println("页数:"+age);
}
}
}
}