面向对象编程
字数
1499 字
阅读时间
7 分钟
Java 就是一门典型的面向对象语言。
面向对象编程是一种编程思想,它把现实世界中的事物抽象成“对象”来处理程序逻辑。
核心思想: 万物皆对象:现实世界中的一切都可以看作是“对象”。 通过对象之间的交互完成任务。
关键词 | 含义 |
---|---|
类(Class) | 是对象的模板,定义了对象的属性和行为 |
对象(Object) | 是类的具体实例,每个对象都有自己的数据 |
属性(Field / Property) | 描述对象的状态,如学生的姓名、年龄 |
方法(Method) | 描述对象的行为,如打招呼、吃饭等 |
什么是对象?
- 万物皆可对象,谁的数据谁储存 对象也就是一种特殊的数据结构。用类
new
出来,有了类就可以创造出对象。
对象是类的具体实例
js
public class 类名{
1.变量,说明对象可以处理什么数据
2.方法,描述对象具有什么功能,也就是可以对数据进行什么处理
}
比如一辆汽车(Car),它有: 属性(特征)
:品牌、颜色、速度 行为(功能)
:启动、加速、刹车 在 Java 中,我们就可以把这个“汽车”抽象成一个对象,并描述它的属性和行为。
对象在计算机中具体算什么?
在计算机中,对象
是类
的一个实例
,它存在于内存中,有自己的数据(属性)和方法(行为)。 你可以把它想象成一个盒子
,这个盒子里装着一些变量(属性)和一些函数(方法)
什么是类(Class)?
类是对一类具有相同特征的对象的模板
或蓝图
。 继续用“汽车”的例子: Car
是一个类(Class) 它描述了所有汽车共有的属性(如品牌、颜色)和行为(如启动、加速) 每一辆具体的车(比如宝马、特斯拉)就是 Car 类的一个对象(Instance)
注意
同一个文件中最多只能有一个公共类,且该公共类的文件名必须与类名相同 Product Java→Product
简单练习
1.写一个简单的 Java 程序,模拟“学生”这个对象。
定义一个类 Student
js
// Student.java
public class Student {
// 属性(成员变量)
String name;
int age;
// 方法(成员方法)
public void sayHello() {
System.out.println("大家好,我叫" + name + ",今年" + age + "岁。");
}
}
创建对象并使用
js
// Main.java
public class Main {
public static void main(String[] args) {
// 创建一个 Student 对象
Student student1 = new Student();
// 给对象设置属性值
student1.name = "小明";
student1.age = 15;
// 调用对象的方法
student1.sayHello(); // 输出:大家好,我叫小明,今年15岁。
}
}
2.设计一个book类
🎯要求:
- 属性:书名(title)、作者(author)、价格(price)
- 方法:showInfo() 显示书的信息
定义book类
js
public class Book {
String title;
String author;
double price;
public void showInfo() {
System.out.println("书名:" + title);
System.out.println("作者:" + author);
System.out.println("价格:" + price);
}
}
定义book类
js
public class Main {
public static void main(String[] args) {
Book book1 = new Book();
book1.title = "Java从入门到放弃";
book1.author = "小明";
book1.price = 69.9;
book1.showInfo();
}
}
3.设计一个银行账户类
🎯要求:
- 属性:账户名(owner)、余额(balance)
- 方法:方法:deposit(double amount) 存款、withdraw(double amount) 取款(如果余额足够)、checkp() 查看余额
定义银行账户类
js
public class bankaccount{
string owner;
double balance;
public void deposit(double amount){
balance += amount
System.out.println("Success, 当前余额:" + balance);
}
public void withdraw(double amount) {
if (amount <= balance) {
balance -= amount;
System.out.println("取款成功,当前余额:" + balance);
} else {
System.out.println("余额不足!");
}
}
public void checkBalance() {
System.out.println(owner + " 的账户余额为:" + balance);
}
}
定义银行账户类
js
public class Main {
public static void main(String[] args) {
BankAccount account = new BankAccount();
account.owner = "臻宝";
account.balance = 1000;
account.checkBalance(); // 当前余额
account.deposit(80000); // 存款
account.withdraw(200); // 取款
}
}
常见类
String
String 是一个非常重要的类,用于表示和操作字符串。
它是 Java 标准库中 java.lang 包的一部分,因此在使用时无需手动导入。
简单定义
js
String name = "Hello, Java";
常见的构造方法
构造方法 | 示例 | 说明 |
---|---|---|
String() | new String() | 创建空字符 |
String(String original) | new String("abc") | 拷贝已有字符 |
String(char[] value) | new String(new char[]{'a','b','c'}) | 从字符数组构建 |
String(byte[] bytes) | new String("abc".getBytes()) | 从字节数组构建 |
不可变性详解
js
String s = "hello";//String是不可变的对象
s = s + " world"; // 实际上是创建了一个新的字符串对象
原始字符串 "hello" 并没有被修改; 新字符串 "hello world" 被创建,并赋值给 s。 如果需要频繁修改字符串内容,推荐使用 StringBuilder 或 StringBuffer。
小例子:统计字符出现次数。
js
public class CharacterCounter {
public static void main(String[] args) {
// 定义一个字符串和要查找的字符
String input = "abracadabra";
char target = 'a';
// 调用方法统计字符出现次数
int count = countCharacter(input, target);
// 输出结果
System.out.println("字符 '" + target + "' 出现了 " + count + " 次");
}
/**
* 统计指定字符在字符串中出现的次数
*/
public static int countCharacter(String str, char ch) {
int count = 0; // 初始化计数器
// 遍历字符串中的每一个字符
for (int i = 0; i < str.length(); i++) {
// 如果当前字符等于目标字符,计数器加一
if (str.charAt(i) == ch) {
count++;
}
}
// 返回最终统计结果
return count;
}
}