Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Существует несколько классификаций типов переменных. Первый вид классификаций связан с типами данных, которые они(переменные) могут представлять. Все типы данных в Java возможно разделить на примитивные и ссылочные типы. Примитивными типами называются такие, для которых данные содержатся в одной ячейке памяти, и эта ячейка не имеет подъячеек.
Ссылочными типами называются такие, для которых в ячейке памяти (ссылочной переменной) содержатся не сами данные, а только адреса этих данных, то есть ссылки на данные. При присваивании в ссылочную переменную заносится новый адрес, а не сами данные. Но непосредственного доступа к адресу, хранящемуся в ссылочных переменных, нет. Это сделано для обеспечения безопасности работы с данными. В отличии от С++ в Java отсутствует возможность работы с указателями.Существуют следующие примитивные типы данных- char,short,byte,int,long,float,double,boolean. К ссылочным типам относятся ссылки на экз. любых классов, а также массивы любых типов данных, в том числе и простых. Примеры объявления и инциализации переменных приведены ниже:
Примитивные типы
2. Листинг:
2.1. char ch1=34;
2.2. char ch2, qw;
2.3. ch2=’q’;
2.4. byte byt1=7;
2.5. short shor1=32000;
2.6. int in1=12;
2.7. long lon1=12L;
2.8. float fl1=12.34f;
2.9. double db1=12.34;
2.10. boolean bool1=false;
Обратите внимание на строки 2.2-2.3- это пример отложенной инициализации, когда происходит только объявление переменной, а первоначальное значение присваивается далее в коде, но до первого обращения к переменной. При обращении к переменной после ее объявления, тип переменной не указывается.
Ссылочные типы
Листинг 3:
3.1. Human hum3=new Human();
3.2. Human hum4=new Human("Сидоров С.П.");
3.3. Human hum5=new Human("Ричард Бах",74, "г. Николаев,"+ "ул. Мархлевского 45",new Date(),"1234567890");
3.4. ArrayList ar_list1=new ArrayList();
3.5. int[] ar_int34=new int[10];
3.6. int[] ar_int38={1,3,2,56,45};
3.7. String str1="Это строка";
3.8. String str2=new String(str1);
3.9. String str3=new String("Это также строка");
Отличие объявления и инициализации ссылочных переменных заключается в использовании ключевого слова =new= вместе с одним из конструкторов класса. В строках 3.1-3.3 вы видите 3 разных способа создания экземпляров переменных, тип которых соответствует классу Human, при этом используются 3 разных вида конструктора этого класса. Все они(конструкторы) описаны в Листинге 1(1.16—1.31).
Синтаксис объявления и инициализации встроенных классов и классов собственной разработки, не отличается. Это видно на примере создания ссылки на экземпляр класса ArrayList(строка 3.4).
Некоторые особенности создания и инициализации экземпляров класса String и массивов видны в строках 3.5-3.9
Второй вид классификации переменных – по месту объявления. В зависимости от того в какой части класса объявлена переменная, необходимо, знать ряд особенностей их использования. Переменные класса или атрибуты класса объявляются при описании класса(пример –строки 1.10-1.14 Листинга 1). Обычно их инициализация происходит в конструкторах класса(Листинг 1 строка 1.9-1.31). Для них предусмотрена инициализация по умолчанию(она есть только у переменных класса). Так для атрибутов класа всех числовых типов, эти атрибуты инициализируются по умолчанию =0=, все ссылочные типы инициализируются нулевой ссылкой для которой предусмотрено ключевое слово =null= Локальные переменные – это переменные объявленные в теле любого метода класса или конструктора. Область видимости данных переменных начинается с момента объявления их в методе класса до конца метода. в котором они объявлены. Влиять на видимость локальной переменной в теле метода, возможно, с помощью фигурных скобок {}. Например:
Листинг 4.
4.1. public int metod1(){
4.2. int var_int=12;
4.3. {
4.4. String temp_str="значение 1";
4.5. }
4.6. int temp_str=45+var_int;
4.7. return temp_str;
4.8. }
На примере этого листинга, видно, что объявление переменной temp_str в методе строка 4.4 не мешает объявить переменную в строке 4.6 с таким же именем и другого типа, благодаря тому, что видимость переменной, объявленной в строке 4.3 ограничена областью {}(строка 4.3, 4.5). Наличие локальной области не мешает
Использовать переменную var_int в строке 4.6.
Дата публикования: 2015-04-06; Прочитано: 338 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!