public class OOP_4_22_01 {
static {
System.out.println("开始进行类的初始化");
}
public static void main(String[] args) {
//测试咱们的构造器
Point p = new Point(5.0, 6.0, 7.8);
print(p.getDistance(new Point(2.0 , 4.0 , 3.5)));
}
public static void print(Object obj) {
System.out.println(obj);
}
}
/*
*构造器:Java通过关键new来调用构造器,返回类的实例,构造器其实就是对对象初始化
*格式如下:
*[修饰符] 类名 [形参列表] {
*//n条语句
*}
*
*要点:1、构造器虽然有返回值,但是不能定义返回类型,因为返回类型一定是本类
* 2、如果没有定义构造器,系统会自动为我们定义一个无参的构造器;如果我们自定义了构造器,
* 我们一定记得要对类的无参构造器进行处理
* 3、构造器的方法名和类名必须一致
*
*/
class Point {
double x , y ,z;
public Point () {
}
public Point (double x , double y , double z) {
this.x = x;
this.y = y;
this.z = z;
}
public double getDistance(Point p) {
return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z));
}
/*
* 垃圾回收机制 Garbage Collection
* JAVA的内存管理实际就是对象的管理,包括对象空间的分配和释放
* 对象空间的分配:使用new关键字创造对象即可
* 对象空间的回收:将对象赋值null,垃圾回收器会负责将所有“不可达”的对象的内存空间回收
* 要点:1、程序员不能调用垃圾回收器
* 2、程序员可以通过调用System.gc()通知进行垃圾回收,但是程序不会马上回收
* 3、finaliza是JAVA提供给程序员用来释放对象或资源的,但是尽量少用
*/
/*
* 方法重载
* 要点:1、参数类型不同、或者参数个数不同、或者参数顺序不同 会构成方法重载
* 2、构造方法也可以重载
* 3、方法调用时,匹配离得最近的方法
*/
/*
* this关键字
* 要点:1、普通方法中指向调用该方法的对象
* 2、构造方法中指向正要初始化的对象
* 3、this不能用于static,想想为什么?
*/
/*
* static关键字
* 对于类而言:1、static声明的成员变量为静态成员变量,它被该类所有的实例共享,在类被载入的时候被显示初始化
* 2、可以通过 “类名.类属性名” 来调用
* 对于方法而言:1、不需要new对象,可以直接调用
* 2、调用该方法的时候,不会将对象的引用传递给它,所以在static方法里面不能访问非static成员
*/
}
本文出自 “影魔登场” 博客,请务必保留此出处http://woodywoodpecker.blog.51cto.com/4820467/1637734