Java

Java 知识量:11 - 45 - 220

3.1 Java类><

面向对象的基本概念- 3.1.1 -

面向对象的基本概念包括以下三个方面:

  • 对象(Object):对象是面向对象的基本组成单元,它表示现实世界中的实体或概念。在Java等面向对象的编程语言中,对象可以是具体的实体,例如一个苹果、一辆汽车等,也可以是抽象的概念,例如一个函数、一段代码等。每个对象都有其自己的属性和行为,这些属性和行为可以通过对象的方法来访问和改变。

  • 类(Class):类是对具有相同属性和行为的对象的抽象描述。在Java中,类是一个定义了变量(属性)和方法(行为)的蓝图或模板,用于创建具有相同属性和行为的对象。每个类都有自己的名称和定义,并且可以拥有多个实例(对象)。

  • 面向对象编程(Object-Oriented Programming):面向对象编程是一种程序设计方法,它将现实世界中的实体和概念抽象成对象,并将对象组合起来完成特定的任务。在Java等面向对象的编程语言中,通过定义类和创建对象来实现面向对象编程。面向对象编程具有封装、继承、多态等特性,使得代码更易于理解、开发和维护。

定义类的句法- 3.1.2 -

定义一个类通常需要以下几个步骤:

1、声明类名和类的访问修饰符(public、private、protected 或默认的):

public class MyClass {  
  //类的内容  
}

2、声明类的成员变量(也称为属性或字段):

public class MyClass {  
  int myVariable; //成员变量  
}

3、声明类的构造函数:

public class MyClass {  
  int myVariable;  
    
  public MyClass() {  
    //构造函数内容  
  }  
}

4、声明类的方法:

public class MyClass {  
  int myVariable;  
    
  public MyClass() {  
    //构造函数内容  
  }  
    
  public void myMethod() {  
    //方法内容  
  }  
}

类的字段和方法- 3.1.3 -

类可以包含字段和方法。

  • 字段(Fields):字段是类中的变量,它们描述了对象的状态。在类中,可以声明变量,这些变量将成为该类的字段。

  • 方法(Methods):方法是类中的操作或行为。它们是执行特定任务的代码块。方法可以在类中被定义,并且可以有参数和返回值。

声明字段的句法- 3.1.4 -

在Java中,声明字段(也称为属性或变量)的句法如下:

[访问修饰符] [static] [final] [数据类型] 字段名;

其中:

  • 访问修饰符:指定字段的访问权限,可以是 public、protected、private 或默认的(没有修饰符)。

  • static:表示该字段是静态字段,属于类而不是对象。

  • final:表示该字段是一个常量字段,不能被修改。

  • 数据类型:指定字段的数据类型,可以是任何有效的Java数据类型,如 int、String、Object 等。

  • 字段名:指定字段的名称。

以下是一些示例:

public int age;  
private String name;  
protected double salary;  
static boolean isMarried;  
final int MAX_VALUE = 100;

在声明字段时,需要注意以下几点:

  • 字段名应该使用驼峰命名法,并具有描述性。

  • 访问修饰符应该根据字段的用途和需求来选择。

  • 对于常量字段,应该使用 final 关键字声明,并在声明时进行初始化。

声明类方法的句法- 3.1.5 -

声明类方法的句法如下:

[访问修饰符] [static] [final] [return类型] 方法名(参数列表) {  
    // 方法体  
}

其中:

  • 访问修饰符:指定方法的访问权限,可以是 public、protected、private 或默认的(没有修饰符)。

  • static:表示该方法是静态方法,属于类而不是对象。

  • final:表示该方法是一个最终方法,不能被重写。

  • return类型:指定方法的返回类型,可以是任何有效的Java数据类型,如 int、String、Object 等,如果方法没有返回值,则返回类型为 void。

  • 方法名:指定方法的名称。

  • 参数列表:指定方法的参数类型和参数名,多个参数之间用逗号分隔。

以下是一些示例:

public void printHello() {  
    System.out.println("Hello, World!");  
}  
  
private int add(int a, int b) {  
    return a + b;  
}  
  
static final double PI = 3.14159;

在声明方法时,需要注意以下几点:

  • 方法名应该使用驼峰命名法,并具有描述性。

  • 访问修饰符应该根据方法的用途和需求来选择。

  • 对于没有返回值的方法,返回类型应该是 void。

实例字段- 3.1.6 -

没有使用static修饰符的字段为实例字段。实例字段是类的成员变量,也称为属性或字段。每个对象都有其自己的实例字段的副本,这些字段存储了关于对象状态的信息。

例如,假设有一个名为Person的类,它有两个实例字段:name和age。

public class Person {  
    String name;  
    int age;  
}

在这个例子中,name和age就是Person类的实例字段。每当创建一个新的Person对象时,都会为这些字段创建新的存储空间。可以通过“.”运算符来访问或设置这些字段的值。

Person person = new Person();  
person.name = "Alice";  
person.age = 30;

在上述代码中,首先创建了一个新的Person对象,然后分别设置了它的name和age字段的值。

实例方法- 3.1.7 -

实例方法操作的是类的具体实例(对象),只要方法没有用static关键字声明,该方法默认为实例方法。

每当创建类的新对象时,都会为该方法创建一个新的实例。实例方法可以直接访问类的非静态成员(实例变量/实例字段)和其他非静态方法。

以下是一个简单的Java类,其中包含一个实例方法:

public class MyClass {  
    // 成员变量  
    private String myVariable;  
  
    // 构造方法  
    public MyClass(String myVariable) {  
        this.myVariable = myVariable;  
    }  
  
    // 实例方法  
    public void myMethod() {  
        System.out.println(this.myVariable);  
    }  
}

可以创建这个类的实例并调用它的实例方法:

public class Main {  
    public static void main(String[] args) {  
        // 创建 MyClass 的实例  
        MyClass myObject = new MyClass("Hello, world!");  
  
        // 调用实例方法  
        myObject.myMethod();  // 输出 "Hello, world!"  
    }  
}

在上面的例子中,myMethod是一个实例方法,它可以直接访问类的实例变量myVariable。当创建MyClass的实例并调用myMethod时,它会打印出在创建对象时传入的字符串。

this引用的工作方式- 3.1.8 -

this是一个引用变量,它引用当前对象,即正在执行的对象。当一个对象调用一个方法时,该方法中的this引用将指向调用该方法的对象。

this引用在以下情况下非常有用:

1、区分实例变量和局部变量:如果实例变量和局部变量具有相同的名称,则可以使用this引用来引用实例变量。例如:

public class MyClass {  
    private int x;  
  
    public void setX(int x) {  
        this.x = x;  
    }  
}

在上面的例子中,“this.x”引用实例变量“x”,而不是方法参数“x”。
2、在构造函数中引用当前对象:在构造函数中,可以使用this引用来引用当前正在构造的对象。例如:

public class MyClass {  
    private int x;  
  
    public MyClass(int x) {  
        this.x = x;  
    }  
}

在上面的例子中,“this.x”引用当前对象的实例变量“x”。
3. 在方法中引用当前对象:在方法中,可以使用this引用来引用当前正在执行的对象。例如:

public class MyClass {  
    private int x;  
  
    public void printX() {  
        System.out.println(this.x);  
    }  
}

在上面的例子中,“this.x”引用当前对象的实例变量“x”。