千锋Java&Day20课后作业

内部类

Object类

清醒温柔知进退,努力上进且优秀
努力到无能为力,拼搏到感觉自己
加油!

2.(toString方法)写出下面代码运行结果

class Student{
    private int age;
    private String name; 
    public Student(){
    }
    public Student(String name, int age){
        this.name = name;
        this.age = age;
        }
        public String toString(){
           return name + “ ” + age;
           }
 }
 public class TestStudent{
      public static void main(String args[]){
         Student stu1 = new Student();
         Student stu2 = new Student(“Tom”, 18);
         System.out.println(stu1);
         System.out.println(stu2);
         }
}

运行结果为:
null 0
Tom 18

3.(equals)写出下面程序运行的结果

public class TestEquals{
     public static void main(String args[]){
      String str1 = new String(“Hello”); 
      String str2 = new String(“Hello”); 
      System.out.println(str1.equals(str2)); 
      System.out.println(str1 == str2);
      }
}

运行结果为:
true
false

4.(getClass)写出下面程序运行的结果

class Animal{}
     class Dog extends Animal{}
     public class TestGetClass{
        public static void main(String args[]){ 
         Animal a1 = new Dog(); 
         Animal a2 = new Animal(); 
         System.out.println(a1 instanceof Animal); 
         System.out.println(a1.getClass() == a2.getClass());
         }
}

运行结果为:
true
false

5.(内部类)Java 中的内部类包括

A.成员内部类
B.静态内部类
C.局部内部类
D.匿名内部类
E.公开内部类
F.抽象内部类

ABCD

6.为 Worker 类增加 equals 和 toString 方法

public class TestWorker {
	  public static void main(String[] args) {		
	    Worker[] workers = new Worker[] {				
	    new Worker("Tom",23,"男",3000.0),				
	    new Worker("Tom",23,"男",3000.0),				
	    new Worker("Jack",22,"男",7000.0)};		
	    for(int i = 0 ;i < workers.length ; i++) {	
	      System.out.println(workers[i].toString());		
	  }		
	      System.out.println(workers[0].equals(workers[1]));	
	      System.out.println(workers[0].equals(workers[2]));	
	  }
}
    class Worker{	
          String name;	
          int age;	
          String sex;	
          double salary;	
          public Worker() {}	
          public Worker(String name, int age, String sex, double salary) {
          		super();	
             	this.name = name;		
             	this.age = age;		
             	this.sex = sex;		
             	this.salary = salary;	
           }
           	public String toString() {	
           		return name + "\t" + age + "\t" + sex + "\t" + salary;	
            }	
            public boolean equals(Object obj) {	
            	if (this == obj) {		
            		return true;	
             	}			
             	if (obj == null) {			
             	    return false;		
             	}		
             	if (this.getClass() != obj.getClass()) {
             		return false;		
             	}		
             	Worker worker = (Worker) obj;		
             	if (this.name.equals(worker.name) && this.age == worker.age 				&& this.sex.equals(worker.sex) && this.salary == worker.salary) {
             		return true;		
             	}		
             	  return false;	
          }		
  }

运行结果
Tom 23 男 3000
Tom 23 男 3000
Jack 22 男 7000
true
false

9.(局部内部类)有下面代码

 class OuterClass{
      private int value1 = 100;  
      private static int value2 = 200; 
      public void method(int value3){
             final int value4 = 400; 
         class InnerClass{p
         ublic void print(){
          //1
          }
       }
    }
}
问:下面哪些代码放在//1 处能够编译通过?
A.System.out.println(value1);
B.System.out.println(value2);
C.System.out.println(value3);
D.System.out.println(value4);

ABCD

10.已知接口 Light 定义如下:

interface Light{
     void shine();
  }
  //定义 Lamp 类:
  class Lamp{
         public void on(Light light){
             light.shine();
         }
   }
   //写一个类 TestLamp,部分代码如下:
   public class TestLamp{
          public static void main(String args[]){
           Lamp lamp = new Lamp();
           //1
           //2
          }
  }
把 TestLamp 类补充完整,要求:
 Ⅰ.//1 处使用局部内部类技术,调用 lamp 的 on 方法要求输出”shine in red”
  II.//2 处使用匿名内部类技术,调用 lamp 的 on 方法要求输出”shine in yellow”

第一题:

class RedLight implements Light{
			@Override			
			public void shine() {			
				System.out.println("shine in red");			
			}
	}		
	        lamp.on(new RedLight());

第二题:

lamp.on(new Light(){
			public void shine() {				
			System.out.println("shine in yellow");		
			}		
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值