2014-01-23 3 views
1

Я новичок в Java.This был примером на OOP.I имеет класс файл с именем «Automobile.java» и программой драйвера сохранен как AutomobileTest.java .my вопроса, когда объект создается в AutomobileTest.java, как он знает, что ему нужно получить доступ к методам и переменным из Automobile.java.
Это мой код:
Automobile.javaПонимание методов в 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); 
    } 
} 
+0

Использование Access спецификатор ... –

+2

я настоятельно рекомендую, начиная с книги новичка на Java или обучающих программ Oracle. Они отвечают на эти вопросы и многое другое. –

+0

перейдите по ссылке.http: //www.tutorialspoint.com/java/java_access_modifiers.htm –

ответ

1

Если вы спрашиваете, как содержание AutomobileTest.java знает, чтобы найти Automobile класс в Automobile.java , это связано с упаковкой Java.

В Java вы можете объявить классы определенными пакетами, указав package X в верхней части нескольких исходных файлов Java. Это означает, что они будут совместно использовать «пространство имен» и, таким образом, иметь доступ к методам и переменным (указать модификаторы доступа, которые упоминаются другими комментаторами, например public и private).

Но, похоже, ваши файлы не говорят package X наверху. Ну, по умолчанию Java помещает файлы в один и тот же каталог в «анонимный пакет», поэтому технически Automobile.java и AutomobileTest.java используют пространство имен.

Для получения дополнительной информации о Java-пакетов, см эти ресурсы: http://en.wikipedia.org/wiki/Java_package http://docs.oracle.com/javase/tutorial/java/package/packages.html

2

Из вашего вопроса я полностью понимаю, что вы новичок в программировании на Java.

Чтобы ответить на ваш вопрос, в файле AutomobileTest.java, вы включили заявление

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

в этой строке, ключевое слово «новый» будет говорить Java компилятор для создания объекта класса Automobile и, следовательно, java-компилятор будет знать, к какому классу будет доступ.

Чтобы узнать больше об этом, вам нужно много изучать. См. this книга.

1

Он знает, потому что они находятся в одной упаковке. Читайте о пакетах и ​​защите доступа here.

0

Взгляните на этот вопрос: In Java, difference between default, public, protected, and private

Modifier | Class | Package | Subclass | World 
————————————+———————+—————————+——————————+——————— 
public  | ✔ | ✔ | ✔  | ✔ 
————————————+———————+—————————+——————————+——————— 
protected | ✔ | ✔ | ✔  | ✘ 
————————————+———————+—————————+——————————+——————— 
no modifier | ✔ | ✔ | ✘  | ✘ 
————————————+———————+—————————+——————————+——————— 
private  | ✔ | ✘ | ✘  | ✘ 
Смежные вопросы