java 构造函数 Getter/Setter步骤

java 构造函数 Getter/Setter方法
import java.util.Date;

public class DataEncapsulation{
   public static void main(String[]args){
      System.out.println(AsNamespace.distance(0, 1, 0, 1));

      Point m=new Point(0,0);
      Point n=new Point(1,1);

      n.SetX(2);

      //获取当前系统时间
       System.out.println(System.currentTimeMillis());
      Date date=new Date(System.currentTimeMillis());
      System.out.println(date.toString());

      //典型应用:测量时间差
       long now=System.currentTimeMillis();
      int x=10;
      for(int i=0;i<2000000;i++){
          x=x*x%7+200;
      }
      System.out.println(System.currentTimeMillis()-now);
   }
}

//面向对象的第一个需求:将不同的数据整合在一起更好的体现语义
class Point{
   private double x;
   private double y;

   public Point(double x,double y){
       this.x=x;
       thix.y=y;
   }

   // 构造函数亦可根据形参列表的不同产生重载
    public Point(Point p) {
       x = p.x;
       y = p.y;
   }

   // Getter/Setter 是 Java 编程的范式, 并不是强制要求
   // 封装不是 Java (面向对象语言) 强制要求的
   // 封装也不是面向对象独有的

   // Getter 方法
   // 命名: 属性名首字母大写, 前置 get
  //  参数: 无
   // 返回值类型: 与属性类型一致
     public double getX() {
	return x;
    }

	// Setter 方法
	// 命名: 属性名首字母大写, 前置 set
	// 参数: 一参数, 与属性类型一致
	// 返回值类型: void
	public void setX(double x) {
		this.x = x;
	}

	public double getY() {
		return y;
	}

	public void setY(double y) {
		this.y = y;
	}
}

class Circle {
	// 光标在类体中, 右键菜单 Source->Generate Getters and Setters
	public double getRadius() {
		return radius;
	}

	public void setRadius(double radius) {
		this.radius = radius;
	}

	public Point getCenter() {
		return center;
	}

	private Point center;
	private double radius;
}

// 作为静态函数或常量的「名字空间」
// 与面向对象无关
// 方法不能直接出现在文件空间内
public class AsNamespace {
	public static double distance(double x0, double y0, double x1, double y1) {
		return Math.sqrt((x0 - x1) * (x0 - x1) + (y0 - y1) * (y0 - y1));
	}

	public static double distance(Point p0, Point p1) {
		return Math.sqrt((p0.getX() - p1.getX()) * (p0.getX() - p1.getX())
				+ (p0.getY() - p1.getY()) * (p0.getY() - p1.getY()));
	}
}