学习记录分享

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

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

  1. 为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();
	}
}

运行结果:
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值