Java之三大类 懒汉式单例 equals方法 toString 方法覆写

版权声明:转载请联系 :[email protected] https://blog.csdn.net/weixin_40928253/article/details/81169094

1、Java之三大类String、Object及包装类的常用方法以及注意点

博客地址:https://mp.csdn.net/postedit/81164849

2.编程题: 
要求: 
1).Person类有name,age,salary属性,要求实现至少两个构造方法,并且属性私有,提供对应的getter、setter。 
2).覆写toString方法,要求在System.out.println()函数中传递Person对象能打印出三个属性值而不是对象地址。 
3).覆写equals方法,要求两个Person类对象的值相同时返回true。 

//题目要求:
//1).Person类有name,age,salary属性,要求实现至少两个构造方法,并且属性私有,提供对应的getter、setter。 
//2).覆写toString方法,要求在System.out.println()函数中传递Person对象能打印出三个属性值而不是对象地址。 
//3).覆写equals方法,要求两个Person类对象的值相同时返回true。 
class Person{
	 private String name;
	 private int age;
	 private double salary;
	public Person(String name) {
		this.name = name;
	}
	public Person(String name, int age, double salary) {
		this.name = name;
		this.age = age;
		this.salary = salary;
	}
	public String toString(){
		return "姓名:"+name+";年龄:"+age+";薪水:"+salary;
	}
	
	public boolean equals(Object obj){
		if(obj == null){
			return false;
		}
		if(this == obj){
			return true;
		}
		if(!(obj instanceof Person)){
			return false;
		}
		Person per=(Person) obj;
		return this.age==per.age&& this.name.equals(per.name)&& this.salary==per.salary ;	
	
	}
}
public class Test {
	public static void main(String[] args) {
		 Person per1 = new Person("zhang");
		 Person per2 = new Person("liu");
		 Person per3 = new Person("小王",18,1900.00);   
		 Person per4 = new Person("小张",18,1900.000);
		 System.out.println(per1);
		 System.out.println(per2);
		 System.out.println(per1.equals(per2)); 
		 System.out.println(per3.equals(per4)); 
	}
}

3.说出下列程序的执行结果,并说明原因: 
Integer a = 55; 
Integer b = 55; 
System.out.println(a==b); 
System.out.println(a==new Integer(55)); 
System.out.println(a.equals(new Integer(55))); 
Integer c = 129; 
Integer d = 129; 
System.out.println(c==d);

输出:

true

false

true

false

4.写出懒汉式单例模式 

class 	Singleton{
	private static Singleton instance;
	private Singleton() {
	}
	public  static Singleton getInstance(){
		if (instance == null) {
			instance = new Singleton();
		}
		return instance;
	}
	public void print() {
		System.out.println("HelloLiu~~");
	}
}
public class BBB{
	public static void main(String[] args) {
		Singleton singleton = Singleton.getInstance();
		singleton.print();
	}
}

5.(算法) 
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

public class BBB{
	public static void main(String[] args) {
		int x = 1;
		for (int day = 1;day<10;day++) {
			x = (x+1)*2;
		}
		System.out.println(x);
	}
}

输出结果为1534.

猜你喜欢

转载自blog.csdn.net/weixin_40928253/article/details/81169094
今日推荐