# 面向初学者的 Java 类和对象教程

> 原文： [https://javabeginnerstutorial.com/core-java-tutorial/java-class-object-tutorial/](https://javabeginnerstutorial.com/core-java-tutorial/java-class-object-tutorial/)

类是用于创建定义其状态和行为的对象的模板。 一个类包含用于定义其对象的状态和行为的字段和方法。

## 声明类的语法：

```java
<Access Modifier> class <Class_Name> extends
                 <Super_Class_Name> implements <Interface_Name>
```

[访问修饰符](https://javabeginnerstutorial.com/core-java-tutorial/access-modifier-in-java/ "Access Modifier in Java")：定义 Java 世界中谁可以访问该类以及该类的成员。

**`CLASS_NAME`**：特定包中类的唯一名称。

**`SUPER_CLASS_NAME`**：给定类扩展的类的名称。 （为此使用 `extends`关键字）

**`INTERFACE_NAME`**：以上类实现的接口的名称。 （`implements`关键字用于此目的）

## 类的内部结构

```java
<Access_Modifier> class <Class_Name> extends <Super_Class_Name> implements <Interface_Name>{
    <static initilizar block>
    <ananymous_block>
    <constructor_declarations>
    <field_declarations (Static or Non-Static)>
    <method_declarations (Static or Non-Static)>
    <Inner_class_declarations>
    <nested_interface_declarations>
    variables_inside_class(Static or Non Static)
}
```

## Java 类的示例

```java
/*
 * This is Multi Line Comment and Comment can appear at any place
 */
package com.jbt;

import java.lang.*;

/*
 * As this file contains public class. Then the name of this file should be TestClass.java
 */
public class TestClass {
	public int i; // This is Non Static variable
	static {
		System.out.println("This is static block");
	}

	{
		System.out.println("This is ananuymous block");
	}

	TestClass() {
		System.out.println("This is constructor");
	}

	void methid() {
		System.out.println("This is method");
	}

}

class AnotherClass {
}
```

将类写入 Java 源文件中。 一个源文件可以包含多个 Java 类。 有一些与 Java 源文件相关的规则，如下所示。

## 适用于源文件的规则

*   每个源代码文件只能有一个公开类，但可以有多个非公开类。
*   如果源代码文件中存在任何公开类，则文件名应为该类的名称。
*   源代码文件中的语句序列应为包 >> `import` >> 类声明。
*   没有序列规则适用于注释。
*   注释可以在源代码文件的任何部分的任何位置。
*   没有公开类的文件可以具有该类的任何名称。
*   导入和打包语句应应用于同一源代码文件中的所有类。

## 对象

关于类和对象之间的区别通常会感到困惑。 类是原型的创建，而对象是该原型的实际实现。 从技术上讲，类是描述该类实例可以具有的状态和行为的模板。 对象以变量和方法的形式实现状态和行为，并需要分配一些内存。

## 如何创建类的对象

要创建类的对象，可以使用`new`关键字。

句法：

> `<Class_Name> ClassObjectReference = new <Class_Name>();`

在这里，将执行类（`Class_Name`）的构造器并创建一个对象（`ClassObjectReference`将在内存中保存所创建对象的引用）。

### 示例

```java
package com.jbt;

public class HelloWorld {
	int i; // Class Variable(State)

	void method() {
		System.out.println("Inside Method");
	}// Method (Behavior)
} 
```

对象创建

```java
HelloWorld obj = new HelloWorld();
```

## 如何访问类成员

（`ClassObjectReference.member`）。 您将通过命名对象，后跟句点（`.`），后跟方法的名称及其参数列表来调用对象的方法。

```java
objectName.methodName(arg1, arg2, arg3).
```

### 项目要点

*   一个类只能具有公开和默认访问权限。
*   公开类必须使用相同名称的 Java 文件。
*   一个 Java 文件可以包含多个非公开类，但只能具有一个公开类。
*   所有包中的所有类都可以看到公开类
*   具有默认访问权限的类只能由同一包中的类看到。
*   没有公开类的 Java 文件没有命名限制。
*   该类还可以具有`final`，`abstract`和`strictfp`非访问修饰符。
*   不能实例化抽象类。
*   最终类不能被子类化。
*   类不能是最终的和抽象的。
*   类可见性可以在 3 个参数中看到
    1.  如果一个类可以扩展另一个类？
    2.  一个类是否可以创建另一个类的实例？
    3.  一个类是否可以访问另一个类的方法和变量？

<https://www.youtube.com/embed/VW72ezYj3d4?feature=oembed>

