1.定义一个Father和Child类,并进行测试。
要求如下:
1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。
2)Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。
3)定义一个测试类Test,在Test类的main()方法中,创建Child对象,并调用introFather ()方法。
2.简述下列程序运行结果:
class A{
int y=6;
class Inner{
static int y=3;
void show(){
System.out.println(y);
}
}
}
class Demo{
public static void main(String [] args){
A.Inner inner=new A().new Inner();
inner.show();
}
}
运行结果如下,显然编译出现问题。static关键字修饰的字段Y不能在非静态内部类型中声明为静态。
3.写出下面程序运行结果:
class A{
public A(){
System.out.println(“A”);
}
}
class B extends A{
public B(){
System.out.println(“B”);
}
public static void main(String[] args){
B b=new B();
}
}
b类继承a类,当发生继承关系后,子类可以继承父类的操作,可以实现代码的重用,子类最低也维持和父类相同的功能,子类可以进行功能的扩充。故在此处引用 B b=new B();先打印A后打印B。因此此代码片段输出AB。
4.编程题:
打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
5.编程题:
定义一个抽象的"Role"类,有姓名,年龄,性别等成员变量
1)要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有),
再通过GetXXX()和SetXXX()方法对各变量进行读写。具有一个抽象的play()方法,
该方法不返回任何值,同时至少定义两个构造方法。Role类中要体现出this的几种用法。
2)从Role类派生出一个"Employee"类,该类具有Role类的所有成员(构造方法除外),
并扩展salary成员变量,同时增加一个静态成员变量“职工编号(ID)”。
同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play()方法,
并提供一个final sing()方法。
3)"Manager"类继承"Employee"类,有一个final成员变量"vehicle"
在main()方法中制造Manager和Employee对象,并测试这些对象的方法。
源代码如下:
public abstract class Role {
private String name;
private String sex;
private int age;
public Role()
{
}
public Role(String name,int age,String sex)
{
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getSex()
{
return sex;
}
public void setSex(String sex)
{
this.sex = sex;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public void play()
{
System.out.println("this is Role");
}
}
public class Employee extends Role
{
//工资
private String salary;
//员工id
private String ID;
public Employee()
{
super();
}
public Employee(String salary,String ID)
{
super();
this.salary = salary;
this.ID = ID;
}
public void play()
{
System.out.println("this is Employee");
}
public final void sing()
{
System.out.println("Employee extends Role");
}
public String getSalary()
{
return salary;
}
public void setSalary(String salary)
{
this.salary = salary;
}
public String getId()
{
return ID;
}
public void setId(String ID)
{
this.ID = ID;
}
}
public class Manager extends Employee
{
private String vehicle;
public Manager()
{
super();
}
public String getVehicle()
{
return vehicle;
}
public void setVehicle(String vehicle)
{
this.vehicle = vehicle;
}
}
public class TestMethod
{
public static void main(String[] args)
{
Employee e = new Employee();
e.play();
e.sing();
Manager m = new Manager();
m.play();
m.sing();
}
}
----------2018-06-23-------------