Java之打印水仙花问题

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-------------
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值