Java之面向对象(一)

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条语句
 *		}
 *
 *要点:一、构造器虽然有返回值,可是不能定义返回类型,由于返回类型必定是本类
 *	  二、若是没有定义构造器,系统会自动为咱们定义一个无参的构造器;若是咱们自定义了构造器,
 *       咱们必定记得要对类的无参构造器进行处理
 *    三、构造器的方法名和类名必须一致  
 *    
 */   

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,垃圾回收器会负责将全部“不可达”的对象的内存空间回收
 * 要点:一、程序员不能调用垃圾回收器
 * 	   二、程序员能够经过调用System.gc()通知进行垃圾回收,可是程序不会立刻回收
 * 	   三、finaliza是JAVA提供给程序员用来释放对象或资源的,可是尽可能少用
 */
	
/*
 * 方法重载
 * 要点:一、参数类型不一样、或者参数个数不一样、或者参数顺序不一样  会构成方法重载
 * 	   二、构造方法也能够重载
 * 	   三、方法调用时,匹配离得最近的方法
 */

/*
 * this关键字
 * 要点:一、普通方法中指向调用该方法的对象
 *     二、构造方法中指向正要初始化的对象
 *     三、this不能用于static,想一想为何?
 */

/*
 * static关键字
 * 对于类而言:一、static声明的成员变量为静态成员变量,它被该类全部的实例共享,在类被载入的时候被显示初始化
 * 			二、能够经过  “类名.类属性名” 来调用
 * 对于方法而言:一、不须要new对象,能够直接调用
 *			 二、调用该方法的时候,不会将对象的引用传递给它,因此在static方法里面不能访问非static成员 
 */
	
}
相关文章
相关标签/搜索