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方法是对象属性访问的重要组成部分,它们提供了封装和数据访问控制。为了提高开发效率,IntelliJ IDEA,一款广受欢迎的Java集成开发环境(IDE),提供了一系列的插件来简化getter和...
这个基类的核心思想是通过构造函数接收一个字段配置数组,这个数组包含了字段名、是否允许null值、初始值和字段类型等信息。 在`__get()`魔术方法中,当尝试访问一个属性时,它会检查该属性是否存在于字段配置数组...
此外,一些插件如`Lombok`能完全自动化getter和setter的生成,甚至包括构造函数、equals()、hashCode()等方法,且支持自定义注释。 7. **代码规范与团队协作** 当团队协作时,确保所有成员对代码模板达成一致,...
Java private关键字是Java编程语言中的一种访问修饰符,它可以用来修饰类、成员变量、成员方法和构造函数。private关键字的主要作用是控制访问权限,防止外部类或对象对私有成员的访问。 在本文中,我们主要介绍了...
始终创建默认构造函数 自动创建的属性 返回类型的方法具有标准的返回语句 (Getter / Setter方法具有标准的getter / Setter方法主体) 如何使用 通过控制台或在IDE中使用jar,将程序参数设置为: 类图文件的路径 ...
安装Lombok插件后,只需在类上添加`@Data`注解,IDEA就会自动添加getter/setter、构造函数等。 4. **Generate DAO**:对于DAO层,IDEA的"Code > Generate > CRUD"可以创建基于现有表的DAO和Service类。但这需要JPA...
在这个"JAVA-OOP"的学习资源中,我们将深入探讨重载方法(如构造函数)、getter和setter的实现以及包的继承和使用。 1. **重载方法**: 重载(Overloading)是指在同一个类中可以有多个同名方法,但它们的参数列表...
@Builder使用说明 @Builder使用后会给我们生成无参构造方法,但是无法生成Getter/Setter方法。...但是一起使用的时候就会出现,生成Getter和Setter方法,无参构造函数就没有了!这显然是错误的!那怎么解决呢?
例如,在`Car`类中,我们可以通过构造函数初始化对象的属性,并通过getter和setter方法来获取和修改这些属性的值,从而实现了良好的封装: ```java public class Car { private String make; private String ...
(2) 声明一个基类BaseClass,有整形成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。 (3) 声明一个车(vehicle)基类,具有MaxSpeed,Weight等成员变量,Run,Stop等成员函数,...
在 Java 编程语言中,类的构造函数(constructor)是一种特殊的方法,它用于初始化类的实例。在我们的实验中,我们将使用构造函数来初始化 Car 类的实例,其中包括多个组成类的实例。 数据成员和 getter/setter ...
@NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor:自动生成构造函数。 @Data:整合了 @Getter、@Setter、@ToString、@EqualsAndHashCode 和 @RequiredArgsConstructor 的功能。 @Builder:...
根据给定的信息,本文将详细解释“判断是否为闰年,包含两个不同的构造函数”的相关知识点,包括如何定义一个日期类、如何实现读取和设置年、月、日的方法、如何设计不同类型的构造函数以及如何编写一个判断是否为...
其次,构造函数是Java中一个特殊的方法,它的主要任务是初始化新创建的对象。每个类都可以有零个或多个构造函数,它们的名字必须与类名完全相同,且没有返回类型。当我们创建类的新实例时,会调用相应的构造函数。...
在这个例子中,我们定义了一个构造函数`Foo`,并为其原型`Foo.prototype`定义了getter和setter,随后创建的`o`实例继承了这些属性。 除了上述方法,文章还提到了如何使对象属性不可配置或不可枚举。通过使用`Object...
当使用JAXB进行操作时,对于类的属性访问控制需要特别注意,例如,如果私有属性设置了public权限的getter/setter方法,则不应使用`@XmlElement`和`@XmlAttribute`注解,否则可能会因为同一个属性在Java类中被映射两...
实验原理:我们使用 Java 语言来编写程序,学习了如何定义类、如何使用构造函数、getter 和 setter 方法、如何使用 toString() 方法等。 实验报告 实验报告 1: 写出顾客类 Customer 的代码。 实验报告 2: 画...
在上面的代码中,我们使用了@Data注释来自动生成getter/setter方法、equals/hashCode方法和toString方法。这样,我们就不需要手动编写这些方法,提高了开发效率。 Lombok的其他功能 除了简化POJO类的编写外,...
比如,你可以定制生成的类是否包含注释、构造函数、getter/setter方法等,甚至可以实现复杂的逻辑生成。 4. **Maven插件集成**:许多代码生成工具提供Maven插件形式,可以直接集成到项目构建流程中,使得代码生成...
Java 实验代码是 Java 编程的基础,它们涵盖了 Java 的基础知识、构造函数、Getter 和 Setter、继承、Interface、JDBC、SQLException、ResultSet、ArrayList 等多方面的知识点。掌握这些知识点对于 Java 开发者来说...