2.写出下列代码运行结果
public class Test02 {
public static void main(String[] args) {
Student stu1 = new Student();
Student stu2 = new Student("Tom", 18);
System.out.println(stu1);
System.out.println(stu2);
}
}
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;
}
}
运行结果:
null 0
Tom 18
3.写出下面程序运行的结果
public class Test03 {
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
equals方法比较是对象的内存中存储的内容
”==“比较的是对象的地址
4.写出下面程序的运行结果
public class Test04 {
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());
}
}
class Animal {
}
class Dog extends Animal {
}
运行结果:
true
false
instanceof方法用来判断某个对象是否是某个类的一个实例
getClass方法用来获取一个对象的真实类型

ABCD
- 为Worker类增加equals和toString方法
public class Test06 {
public static void main(String[] args) {
Worker worker1 = new Worker("Tom", 25, "male", 6000.0);
Worker worker2 = new Worker("jack", 25, "male", 8000.0);
System.out.println(worker1.equals(worker2));
System.out.println(worker1.toString());
}
}
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 boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (this.getClass() != obj.getClass()) {
return false;
}
Worker work = (Worker) obj;
if (this.name.equals(work.name) && this.age == work.age && this.sex.equals(work.sex)
&& this.salary == work.salary) {
return true;
} else {
return false;
}
}
public String toString() {
return "Worker [name=" + name + ", age=" + age + ", sex=" + sex + ", salary=" + salary + "]";
}
}


class OuterClass{
private int value1 = 100;
private static int value2 = 200;
public void method(int value3) {
final int value4 = 400;
class InnerClass{
public void print() {
System.out.println(value1);
System.out.println(value2);
System.out.println(value3);
System.out.println(value4);
}
}
}
}
ABCD




public class TestLamp {
public static void main(String srgs[]) {
Lamp lamp = new Lamp();
class RedLight implements Light {
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");
}
});
}
}
interface Light {
void shine();
}
class Lamp {
public void on(Light light) {
light.shine();
}
}
运行结果:

本文深入探讨了Java编程中的几个核心概念,包括对象的创建、字符串比较、类型判断、继承关系和内部类使用。通过具体代码示例,展示了如何正确使用equals方法进行对象内容的比较,instanceof关键字判断对象类型,以及内部类如何访问外部类的变量。
937

被折叠的 条评论
为什么被折叠?



