import java.util.Scanner;
import java.util.Random;
public class GuessNumber {
public static void main (String args[]) {
Scanner reader = new Scanner(System.in);
Random random = new Random();
System.out.println("给你一个1至100之间的整数,请猜测这个数");
int realNumber = random.nextInt(100)+1; //random.nextInt(100)是[0,100)中的随机整数
int yourGuess = 0;
System.out.print("输入您的猜测:");
yourGuess = reader.nextInt();
while(true) //循环条件
{
if(realNumber>yourGuess) //猜大了的条件代码
{
System.out.print("猜大了,再输入你的猜测:");
yourGuess = reader.nextInt();
}
else if(realNumber<yourGuess) //猜小了的条件代码
{
System.out.print("猜小了,再输入你的猜测:");
yourGuess = reader.nextInt();
}
}
System.out.print("猜对了");
}
}
最后一个else if把 System.out.print("猜对了");移进去
else if(realNumber<yourGuess) {
System.out.print("猜小了,再输入你的猜测:");
yourGuess = reader.nextInt();
}
else {
System.out.print("猜对了");
break;
}
}
}
}
如果需要支持克隆操作要求必须实现Cloneable接口,Object类中提供了clone()方法,这个方法是一个本地方法,是由虚拟机提供实现的
protected native Object clone() throws CloneNotSupportedException;
Cloneable接口属于标志性接口,没有具体的实现,具体实现实际上是Object类中提供的
1、自定义类上要求实现Cloneable接口
2、自定义类中要求实现clone方法,这个方法只需要调用父类的clone方法即可,一般不需要额外的处理。
浅克隆
public class Colone1 {
public static void main(String[] args) throws Exception {
stu s1 = new stu();
s1.setId(12L);
s1.setBirth(new Date());
stu s2 = (stu)s1.clone();
s2.getBirth().setYear(200);
System.out.println(s1);
System.out.println(s2);
}
}
class stu implements Cloneable{
private Long id;
private Date birth;
public Object clone() throws CloneNotSupportedException{
return super.clone();
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
@Override
public String toString() {
return "stu [id=" + id + ", birth=" + birth + "]";
}
}
深克隆(一般采用对象流实现。自定义类要求实现Serializable接口)
public class clone2 {
public static void main(String[] args) {
student11 ss1 = new student11();
ss1.setId(20L);
ss1.setBirth(new Date());
student11 ss2 = (student11)ss1.deepClone();
ss1.getBirth().setYear(330);
System.out.println(ss1);
System.out.println(ss2);
}
}
class student11 implements Serializable{
private Long id;
private Date birth;
public student11 deepClone() {
student11 res= null;
try {
ByteArrayOutputStream baos =new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(this);
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
res = (student11)ois.readObject();
oos.close();
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
@Override
public String toString() {
return "student11 [id=" + id + ", birth=" + birth + "]";
}
}