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())); } }