理解Java中的方法

时间:2014-01-23 07:45:45

标签: java oop

我是Java的新手。这是OOP的一个例子。我有一个名为“Automobile.java”的类文件,驱动程序保存为 AutomobileTest.java 我的问题是什么时候在AutomobileTest.java中创建一个对象,它怎么知道它必须从Automobile.java访问方法和变量。
这是我的代码:
Automobile.java

class Automobile{
    public int numWheels;
    public String colour;
    public boolean engineRunning;
    public double mileage;
    public int numSeats;


    public Automobile(int wheels,int seats,String vehicleColour){
        numWheels=wheels;
        numSeats=seats;
        colour=vehicleColour;
        engineRunning=false;
        mileage=0.0;    
    }

    public void startEngine(){
         engineRunning=true;
    }
    public void stopEngine(){
         engineRunning=false;
    }
    public double drive(double numMiles){
        return mileage+=numMiles;

    }
    public String toString(){
        String s="numWheels="+numWheels+"\nNumber of seats = "+numSeats+ "\nColour:" +colour+ "\nEngineRunning: " + engineRunning;
        return s;
    }
}

AutomobileTest.java

public class AutomobileTest{
    public static void main (String args[]){
        Automobile ferrari=new Automobile(4,2,"red");
        System.out.println(ferrari);
        System.out.println("Engine started");
        ferrari.startEngine();
        System.out.println(ferrari);
    }
}

4 个答案:

答案 0 :(得分:2)

从您的问题中我完全理解您是Java编程的新手。

要回答您的问题,请在AutomobileTest.java文件中包含声明

Automobile ferrari=new Automobile(4,2,"red");

在这一行中,关键字“new”将告诉java编译器创建类Automobile的对象,因此java编译器将知道要访问哪个类。

要了解更多相关信息,您需要做大量的研究。请参阅 this book。

答案 1 :(得分:1)

如果您问AutomobileTest.java的内容如何知道在Automobile中找到Automobile.java类,这与Java打包有关。

在Java中,您可以通过在多个Java源文件的顶部说package X来将类声明为某个包。这意味着它们将共享一个“命名空间”,因此可以访问方法和变量(使其他评论者提到的访问修饰符,例如publicprivate)。

但似乎您的文件顶部没有说package X。好吧,默认情况下,Java将文件放在“匿名包”中的同一目录中,因此技术上Automobile.javaAutomobileTest.java共享命名空间。

有关Java包的更多信息,请参阅以下资源: http://en.wikipedia.org/wiki/Java_package http://docs.oracle.com/javase/tutorial/java/package/packages.html

答案 2 :(得分:1)

它知道,因为它们在同一个包中。阅读有关包和访问保护here

答案 3 :(得分:0)

看一下这个问题:In Java, difference between default, public, protected, and private

Modifier    | Class | Package | Subclass | World
————————————+———————+—————————+——————————+———————
public      |  ✔    |    ✔    |    ✔     |   ✔
————————————+———————+—————————+——————————+———————
protected   |  ✔    |    ✔    |    ✔     |   ✘
————————————+———————+—————————+——————————+———————
no modifier |  ✔    |    ✔    |    ✘     |   ✘
————————————+———————+—————————+——————————+———————
private     |  ✔    |    ✘    |    ✘     |   ✘