千禧难题之三:
庞加莱(Poincare)猜想:如果我们伸缩围绕一个苹果表面的橡皮带,那么我们可以既不扯断它,也不让它离开表面,使它慢慢移动收缩为一个点。另一方面,如果我们想象同样的橡皮带以适当的方向被伸缩在一个轮胎面上,那么不扯断橡皮带或者轮胎面,是没有办法把它收缩到一点的。我们说,苹果表面是"单连通的",而轮胎面不是。大约在一百年以前,庞加莱已经知道,二维球面本质上可由单连通性来刻画,他提出三维球面(四维空间中与原点有单位距离的点的全体)的对应问题是否也成立呢?2003年俄罗斯数学家佩雷尔曼最终解决了三维庞加莱猜想成立,Clay数学研究所在2010年为此召开特别会议,为此猜想盖棺定论。这也是唯一一个迄今为止被解决的千禧难题。
前言
上周我们初步学习的Java包装类的装箱和拆箱,Java1.5之后系统可以进行自动装箱拆箱,但在之前,必须进行手工操作,本周我们学习几个常见包装类的应用和Java所有类的父类Object类。
一、Int类和Integer类的相互转换
可以通过 Integer 类的构造方法将 int 装箱,通过 Integer 类的 intValue 方法将 Integer 拆箱。如下:
class Rextester {
public static void main(String[] args) {
int m = 99;
Integer num = new Integer(m); // 手动装箱
int n = num.intValue(); // 手动拆箱
System.out.println("n = " + n);
Integer num1 = new Integer(m);
System.out.println("num等价于num1的返回结果为" + num.equals(num1));
}
}
注意将手动装拆箱与上周学习的自动装拆箱对比,看看有什么差别。
二、将字符串转换为数值类型
将字符串转换为数值类型有两种方法:
① String型转为int型
int parseInt(String s)
② String型转为float型
Float parseFloat(String s)
class Rextester {
public static void main(String[] args) {
String str1 = "23";
String str2 = "23.1";
int x = Integer.parseInt(str1);// 将字符串变为int型
float f = Float.parseFloat(str2);// 将字符串变为float型
System.out.println("x = " + x + "\nf = " + f);
}
}
三、将整数转换为字符串
Integer 类有一个静态的 toString() 方法,可以将整数转换为字符串。例如:
class Rextester {
public static void main(String[] args) {
int m = 456;
int n = 789;
int sum = m+n;
String x = Integer.toString(m);
String y = Integer.toString(n);
System.out.println("以数值形式输出m+n:" +sum);
System.out.println("以字符串形式输出x+y:" + x+y);
}
}
四、Java Object类
Object 是 Java 类库中的一个特殊类,也是所有类的父类。也就是说,Java 允许把任何类型的对象赋给 Object 类型的变量。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。即下面两行代码是等价的:
public class MyClass{…}
public class MyClass extends Object {…}//Java中继承的关键字为extend,后面我们会具体学习一下。
Java 所有的类都是 Object 类的子类,所以任何 Java 对象都可以调用 Object 类的方法。常见的方法如下表所示:
public class Person {
private String name;
private int age;
public Person(String name, int age) {//定义带两个参数的构造方法
this.name = name;
this.age = age;
}
public String toString() {
return "姓名:" + this.name + ":年龄" + this.age;
}
public static void main(String[] args) {
Person per = new Person("IT进阶之旅", 1);// 实例化Person对象
System.out.println("对象信息:" + per);// 输出对象调用toString()方法
}
}
toString()方法是返回该对象的字符串,程序中的Person类中重写了Object类中的toString()方法,这样直接输出对象时调用的是被子类重写过的toString()方法。(ps:大家可以自己调试一下代码,小编的电脑暂时还没回来。。。。)