1.定义一个Father和Child类,并进行测试。
要求如下:
1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。
2)Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。
3)定义一个测试类Test,在Test类的main()方法中,创建Child对象,并调用introFather ()方法。
class Father{
private String name="zhangjun";
class Child{
public void introFather(){
String name=Father.this.name;
System.out.println(name);
}
}
}
public class Test {
public static void main(String[] args){
Father.Child c=new Father().new Child();
c.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();
}
}
结果:编译失败,当内部类中有静态成员时,内部类也必须是静态的
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();
}
}
结果:A
B
4、编程题:
打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
public class Test {
public static void main(String[] args){
for(int number=100;number<=999;number++){
int a=number%10;
int b=number/10%10;
int c=number/100%10;
if(a*a*a+b*b*b+c*c*c==number){
System.out.println("水仙花是:"+number);
}
}
}
}
结果:
水仙花是:153
水仙花是:370
水仙花是:371
水仙花是:407
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对象,并测试这些对象的方法。
abstract class Role{
private String name;
private int age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public abstract void play();
public Role(){}
public Role(String name,int age,String sex){
this.name=name;
this.age=age;
this.sex=sex;
}
}
class Employee extends Role{
private double salary;
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
private static String ID;
public static String getID() {
return ID;
}
public static void setID(String iD) {
ID = iD;
}
public Employee(){}
public Employee(String name,int age,String sex,double salary,String ID){
super(name,age,sex);
this.salary=salary;
this.ID=ID;
}
public void play(){
System.out.println("员工编号:"+this.getID());
}
final void sing(){
System.out.println("员工姓名:"+this.getName()+",员工性别:"+this.getSex()+",员工年龄:"+this.getAge()+",员工工资:"+this.getSalary());
}
}
class Manager extends Employee {
final String vehicle;
public Manager (String name, int age, String sex, double salary, String ID, String vehicle) {
super(name, age, sex, salary, ID);
this.vehicle = "车";
}
}
public class Test {
public static void main(String[] args){
Employee e = new Employee("张三", 22, "男", 3000,"001");
e.play();
e.sing();
Manager m = new Manager("李四", 23, "男", 4000, "002", "");
m.play();
m.sing();
System.out.println("坐"+m.vehicle);
}
}
运行结果:
员工编号:001
员工姓名:张三,员工性别:男,员工年龄:22,员工工资:3000.0
员工编号:002
员工姓名:李四,员工性别:男,员工年龄:23,员工工资:4000.0
坐车