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.