>>133738 1. Да. Просто говорят что классы Принято называть с заглавной буквы, по соглашению программистов
Code Conventions for the Java Programming language. Таким образом в твоем коде будет легче разобраться другим людям. Ознакомиться с ним можно здесь
http://www.oracle.com/technetwork/java/javase/documentation/codeconvto[...].html 2. Нет, не можешь, каждый класс должен иметь имя.
3. Все в яве это классы. Потому нет никакого класса типов, каждый тип это класс. У рассмотренных типов нет иерархии в том контексте в котором ты спрашиваешь. (На самом деле все они как и любой класс наследуются от класса Object) О наследовании мы поговорим когда будем создавать объекты. Типа комплексных чисел в Java нет, но у меня тут в книжке указан пример класса комплексных чисел. Если понадобится - покажу.
Вот так например так объявлен класс String
public final class String extends Object
implements Serializable, Comparable<String>, CharSequence
final (запрет наследования) и implements (интерфейсы) разберем позднее.
Чтобы перевести int в float нужно сделать приведение типа.
Пишется это так, например.
int count = 1;
float delCount = (float) count;
4. Компиляция - перевод из написанного на понятном человеку коде языке в машинные коды. Но в java есть промежуточный этап - байт-коды, благодаря которым достигается мультиплатформенность (и лагучесть) java программ. Суть в том, что код переводится сначала в байт коды, понятные java-машине а уже она занимается в реальном времени на каждом компьютере переводом в машинный код.
При компиляции в java создаются файлы с расширением .class под каждый класс, написанный в нашей программе. В последующим можно набрать в консоли java имяКласса (с методом main) для его исполнения.
5.
> mutable\immutable тип?
Не понимаю. Есть ли в языки только со ссылочными типами - не знаю, думаю нет. Такой тип понадобился в виду того, что объекты стали слишком объемными, чтобы хранить их значение в переменной. Потому хранится только ссылка на него. Это имеет свои последствия, например при сравнении объектов сравниваются адреса ссылок. В таком случае одинаковые по содержанию строчки "Привет, доброчан!", но хранящиеся в разном месте будут иметь разные ссылки и соответственно считаться разными. Для решение этой проблемы в начальном по иерархии классе Object от которого наследуются все классы описан метод equals() который соответственно присутствует в каждом классе.
6.
При арифметики разных типов происходит приведение типов (которое я упомянул). Нет никаких проблем в том чтобы расширить byte до int явным образом, указав перед ним в скобках (int) как я показал.
Однако такое действие происходит автоматически при арифметике. C расширением типов проблем не возникает.
То есть мы можем написать так
int credit = age * 200;
и это не вызовет ошибки.
7. Это зависит от того, как наши классы будут взаимодействовать. Сейчас мы не придумали никакого механизма и не знаем, понадобится ли к ним доступ из другого класса.
Ты назвал модификаторы доступа
public - переменная класса видна отовсюду и обращаться к ней можно отовсюду.
отсутствие модификатора - виден в рамках пакета. При отсутствии указания пакета (как в классе хикка) классы хранятся в безымянном пакете
protected - виден этому классу и классам-наследникам
private - виден только этому классу
Тут мы и подходим к необходимости методов getter и setter.
Итак, в нашем классе хикка есть поле age. Но поскольку возраст просто так не изменяется мы не хотим, чтобы другие классы могли делать с ним что угодно, но хотим чтобы они знали наш возраст
поэтому мы прячем переменную age под модификатор private и создаем метод, возвращающий возраст нашего хикки.
Этот метод у нас будет public и он будет возвращать значение byte
Назовем его, опять же по соглашению с приставкой get и заглавной буквой
public byte getAge() {
}
Для возврата значения используется команда return значение.
Наш класс теперь выглядит так:
public class Hikka {
byte age = 20;
String name = "Анонимус";
public static void main(String[] args) {
System.out.println("Hello, Dobrochan!");
}
public byte getAge() {
return age;
}
}
Чего мы добились этим методом? Всякий иной класс сможет узнать значение нашего возраста через метод getAge(), но не сможет его изменить. Для изменения же мы можем setAge, где не просто присваивать значение переменный, а проводить проверку, скажем на то, чтобы наш хикка не был старше 100 лет.
8. Это парадигма объективно-ориентированного программирования.
ruwiki://Объектно-ориентированное_программирование