2015-01-10 2 views
-2

Я не знаю, является ли это неправильным способом задавать вопросы, так как это действительно продолжение того, что я получил в другом question.Я понял?

Дело в том, что мне было интересно, что статические ключевые слова сделали, и я думаю, что понял. Мой вопрос сейчас, правильно ли я понял? И как мне создавать экземпляры «Собаки»?

class Dog { 
static String form /* of all dogs */ = "Doggy-like"; 
static int quantity /* of dogs */ = 5; 

String colour; /* of a specific dog */ 
String size; /* of a specific dog */ 

} 

class Cat { 
static String form /* of all cats */ = "Catty-like";  
static int quantity/* of cats */ = 3; 

String colour; /* of a specific cat */ 
String size; /* of a specific cat */ 


} 

public class Animals { 
public static void main(String[] args){ 
    System.out.println("There are "+Cat.quantity+" cats."); 
    System.out.println("There are "+Dog.quantity+" dogs."); 
    /* EDIT: */ 
    Dog Mike = new Dog(); 
    Dog Pete = new Dog(); 
    Cat Sushi = new Cat(); 
    Cat Michael = new Cat(); 
    Cat Pete = new Cat(); 
    Dog.Mike.size="Big"; 
    Dog.Mike.colour="Red"; 
    Dog.Pete.size="Small"; 
    Cat.Sushi.size="Small"; 

    } 
} 

Я также интересно, если существует конфликт между этими кошками и собаками Пита, а если правильно определить их размеры, как это. Имеет ли значение создать его внутри общедоступного класса Животные или внутри их соответствующих классов (или другого класса, если на то пошло)?

+0

Похоже на это. И вы можете создавать экземпляры классов, вызывая соответствующий конструктор, в этом случае это будет 'Dog dog = new Dog();'. –

+0

Не ваш нисходящий избиратель, но, пожалуйста, позаботьтесь о том, что вы задали несколько вопросов, которые были пропущены, и если это происходит слишком сильно, программное обеспечение сайта может автоматически заблокировать вас от дальнейших вопросов. Если вы еще этого не сделали, пройдите через разделы [tour], [help] и [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask), чтобы посмотреть, как работает этот сайт, и помочь вам улучшить ваши текущие и будущие вопросы, тем самым надеясь избежать запрета. –

+0

И теперь для следующего урока представьте класс Animal как расширение Dog и Cat. – wvdz

ответ

2

Да, вы определили статическое поле в классе и обратились к нему в статическом контексте с именем ClassName.fieldName. Итак, вы правы.

Если вы хотите создать экземпляр собаки, вы могли бы сделать это в вашем главном как:

Dog dog = new Dog(); 

По умолчанию, мы получаем конструктор, который не принимает какие-либо параметры/с.

2

Чтобы создать экземпляр собаки просто сделать

Dog d = new Dog(); 

В этом случае default constructor класса становится вызван.

Смежные вопросы