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()));
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值