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()));
}
}
java 构造函数 Getter/Setter方法
最新推荐文章于 2024-01-16 21:57:04 发布