2021-09-22

在本教程中,我们将了解 Java 中的类和对象。如果您需要复习Java 中的包,并获得有关编译和运行简单 Java 程序的帮助,请查看此处

声明一个类

package caveofprogramming.aquarium;

public class Fish {
    public static void main(String [] args) {
        System.out.println("Hello");
    }
}

在这里,我们声明了一个带有静态 main() 方法的最小类,以便它可以作为一个小的自包含程序运行。

该类已声明为public,这意味着所有类都可以从所有包访问该类。如果您的班级中有main(),则必须将班级设为公开。

但是,通常您会在 java 中声明类而不指定修饰符。

一个更复杂的例子

这是一个只有一个方法的类,speak()。

Food.java:

package caveofprogramming.aquarium;

class Food {
    public void speak() {
        System.out.println("Eat me!");
    }
}

现在我们将让 Fish.java 使用 Food.java。我们将使 Fish.java 中的代码创建Food类的一个对象(换句话说,一个特定的实例)并调用我们定义的 speak() 方法。

C:John>javacaveofprogramming.aquarium.Fish
Eat me!

在这里,我们已经将 speak 方法声明为public。还有其他的可能性。

public:可以从任何其他类访问。

protected:只能从同一个包中访问。

private:只能从同一个类中访问。

在可能的情况下使用私有或受保护的;尽可能少地暴露你的代码。

构造函数

构造函数是在创建类的对象时调用的方法。构造函数与您的类具有相同的名称。

在下面的示例中,构造函数输出一条消息,而 main() 除了创建类的实例之外什么都不做。

package caveofprogramming.aquarium;

public class Fish {

    // Constructor
    protected Fish() {
        System.out.println("Constructor called!");
    }
    
    public static void main(String [] args) {
        Fish fish = new Fish();
    }
}
C:work>java caveofprogramming.aquarium.Fish
Constructor called!

实例变量

当然,您的类可以包含数据和方法。变量可以是public、protected或private,就像方法一样。与方法一样,您应该在合理范围内使它们尽可能私有。

您还可以拥有静态数据成员,这些成员在类的所有对象之间共享。

以下示例说明了所有这些想法,并演示了一个接受参数的构造函数。

另外,请注意我们使用this来明确地引用对象的实例变量。

package caveofprogramming.aquarium;

public class Fish {

    // static variables are shared by all instances
    // of the class.
    private static Integer count = new Integer(0);

    // Non-static variables are specific to the object.
    protected String name;
    protected Integer number;

    // Constructor
    protected Fish(String name) {
        // Set name to whatever's passed in.
        this.name = name;       

        // Set number to whatever the count
        // is at the moment.
        this.number = count;

        // Now increment count.
        // count will then be a count of the number
        // of objects created of the class.
        count++;
    }

    // Show some stuff about the class.
    protected void show() {
        System.out.println(number.toString() + 
            ". " + this.name);
    }

    // A main method just to run the whole thing.
    public static void main(String [] args) {
        Fish fish1 = new Fish("Lisa");
        Fish fish2 = new Fish("Pete");
        Fish fish3 = new Fish("Richard");

        fish1.show();
        fish2.show();
        fish3.show();
    }
}
0. Lisa
1. Pete
2. Richard

结论

类和对象是一个很大的主题。例如,我们这里没有涉及继承或接口。但是这里有足够的代码使您能够创建和使用基本类,或者如果您忘记了确切的语法而只需要复习一下,也可以使您能够使用类。

如果您还特别想在本文中看到任何其他内容,请随时发表评论。
推荐一个有趣的网站

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值