Java 面向对象编程
面向对象编程 (OOP) 是一种编程范式,它将程序组织成对象。对象包含数据和操作数据的方法。
OOP 的优势:
-
更快、更易于执行
-
提供清晰的结构
-
代码更易于维护、修改和调试
-
提高代码重用性
-
减少开发时间
类和对象
-
类 是对象的模板,它定义了对象的属性和方法。
-
对象 是类的实例,它包含数据和操作数据的方法。
示例:
-
类:
水果
-
对象:
苹果
、香蕉
、芒果
-
类:
汽车
-
对象:
沃尔沃
、奥迪
、丰田
对象创建
// 创建一个 `水果` 类的对象
Fruit apple = new Fruit();
// 创建一个 `汽车` 类的对象
Car volvo = new Car();
对象属性
// 设置 `apple` 对象的 `name` 属性
`apple.name` = "苹果";
// 获取 `volvo` 对象的 `color` 属性
`String color` = `volvo.color`;
对象方法
// 调用 `apple` 对象的 `eat()` 方法
`apple.eat();`
// 调用 `volvo` 对象的 `drive()` 方法
`volvo.drive();`
面向对象编程的其他重要概念:
-
继承
-
封装
-
多态
学习面向对象编程
-
许多书籍、网站和在线教程可以帮助你学习面向对象编程。
-
通过练习,你将能够更好地理解面向对象编程并将其应用于你的编程项目中。
Java 类和对象
Java 是一种面向对象的编程语言,这意味着它围绕着类和对象构建。
类 是对象的蓝图,定义了对象的属性和方法。
对象 是类的实例,具有特定的属性值和方法实现。
创建类
使用 class
关键字创建类:
public class Main {
int x; // 属性
public void myMethod() { // 方法
// 方法体
}
}
创建对象
使用 new
关键字创建对象:
`Main myObj` = new `Main()`;
访问属性
使用点语法访问对象的属性:
`int x` = `myObj.x`;
调用方法
使用点语法调用对象的方法:
`myObj.myMethod();`
示例
public class Main {
int x;
public void myMethod() {
System.out.println("Hello, world!");
}
public static void main(String[] args) {
`Main myObj` = new `Main()`;
`myObj.x = 5;`
System.out.println(`myObj.x`);
`myObj.myMethod();`
}
}
输出:
5
Hello, world!
类和对象的更多特性
-
继承: 子类可以继承父类的属性和方法。
-
封装: 将数据和方法封装在类中,隐藏内部实现细节。
-
多态: 不同的对象可以响应相同的操作以不同的方式执行。
Java 类属性
类属性,也称为字段,是类中的变量。它们用于存储与类相关的数据。
创建类属性
在类定义中声明属性:
public class Main {
int x; // 属性
String name; // 属性
}
访问类属性
使用点语法访问对象的属性:
`Main myObj` = new `Main()`;
`myObj.x` = 5; // 设置属性值
System.out.println(`myObj.x`); // 获取属性值
修改类属性
可以修改对象的属性值:
`Main myObj` = new `Main()`;
`myObj.x` = 5;
`myObj.x` = 10; // 修改属性值
System.out.println(`myObj.x`); // 输出 10
属性类型
属性可以是任何数据类型,包括:
-
基本类型:int、double、boolean、char等
-
引用类型:String、Date、List等
修饰符
可以使用修饰符来控制属性的访问权限:
-
public:公开访问
-
private:私有访问
-
protected:受保护访问
-
default:默认访问
示例
public class Main {
private `int x`; // 私有属性
public `String name`; // 公开属性
public void myMethod() {
// 可以访问私有属性
`x = 10;`
}
public static void main(String[] args) {
`Main myObj` = new `Main()`;
// 可以访问公开属性
`myObj.name` = "John Doe";
// 无法访问私有属性
// `myObj.x` = 5; // 错误
}
}