对象
一.面向对象的探讨发现
首先,最基本的,在Java中,对象是类的具体实例,它具有属性和方法。
以下是关于Java对象的一些要点和探讨:
-
类和对象的关系:类是一个抽象的概念,描述了对象的属性和行为,而对象是类的具体实例。对象是按照类的定义创建的,每个对象都拥有独立的属性值。
package pojo;
public class Workid {
//账号实体类
private String account;
private String password;
public void setWorkid(String account, String password) {
this.account = account;
this.password = password;
}
public String getWorkid() {
return this.account + " " + this.password;
}
}
-
创建对象:要创建一个对象,首先需要定义一个类。类是通过使用
class
关键字定义的,并且可以包含属性和方法。然后,使用new
关键字和类的构造函数来实例化对象。
Workid workid = new Workid();
-
对象的属性和方法:对象可以具有属性和方法。属性是用于描述对象的特征或状态的变量,而方法是对象执行的操作或行为。可以通过使用点运算符来访问对象的属性和方法。
String account = workid.account;
-
对象的状态和行为:对象的状态由其属性值决定,而对象的行为由其方法执行确定。通过改变对象的属性值,可以改变对象的状态。通过调用对象的方法,可以执行与对象相关的操作。
-
对象的封装:Java中的面向对象编程的封装概念,将数据和操作封装在一个单独的实体中。通过使用访问修饰符(如
public
、private
等)来控制对象的属性和方法的可访问性。这样可以隐藏对象的实现细节,提高代码的安全性和可维护性。
public class Person {
private String name;
private int age;
// 设置姓名
public void setName(String name) {
this.name = name;
}
// 获取姓名
public String getName() {
return name;
}
// 设置年龄
public void setAge(int age) {
this.age = age;
}
// 获取年龄
public int getAge() {
return age;
}
// 显示个人信息
public void displayInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}
public class Main {
public static void main(String[] args) {
// 创建一个Person对象
Person person = new Person();
// 设置对象的属性
person.setName("John");
person.setAge(25);
// 获取对象的属性
String name = person.getName();
int age = person.getAge();
// 显示对象的信息
person.displayInfo();
}
}
-
对象的继承:Java中的类可以通过继承关系进行扩展。继承是面向对象编程的重要概念之一,它允许类继承另一个类的属性和方法。继承可以通过使用关键字
extends
来实现。通过继承,子类可以使用父类的属性和方法,并且可以重写或添加额外的功能。
// 父类: 动物类
class Animal {
protected String name;
public void setName(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + " is eating.");
}
}
// 子类: 猫类,继承自动物类
class Cat extends Animal {
public void meow() {
System.out.println(name + " is meowing.");
}
}
// 主类
public class Main {
public static void main(String[] args) {
// 创建一个猫对象
Cat cat = new Cat();
// 设置对象的属性
cat.setName("Tom");
// 调用继承自父类的方法
cat.eat();
// 调用子类特定的方法
cat.meow();
}
}
二.顺便一提使用过notepad写代码时遇到的小问题
1.第一个刚开始反的小错误是大小写的问题:
显示如下:
C:\Users\Desktop>javac hello.Java
错误: 仅当显式请求注释处理时才接受类名称 'hello.Java'
1 个错误
即后缀java需要小写。
2.xxx是公共的,应在名为xxx.java 的文件中声明"报错。
类名与java文件名不符,修改至一致即可。
另外,一个class只能有一个public类,且一个public类中不能有另一个public类。
继承
1. 继承Thread类
public class MyThread extends Thread {
public void run() {
// 执行线程任务
}
}
// 创建并启动线程
MyThread thread = new MyThread();
thread.start();
2. 实现Runnable接口
public class MyRunnable implements Runnable {
@Override
public void run() {
// 执行线程任务
}
}
// 创建并启动线程
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
3. 使用匿名内部类实现Runnable接口
Runnable myRunnable = new Runnable() {
@Override
public void run() {
// 执行线程任务
}
};
// 创建并启动线程
Thread thread = new Thread(myRunnable);
thread.start();
4. 使用Lambda表达式实现Runnable接口
Runnable myRunnable = () -> {
// 执行线程任务
};
// 创建并启动线程
Thread thread = new Thread(myRunnable);
thread.start();