Оголошення конструкторів

Формат оголошення конструкторів схожий на спрощене оголошення методів. Також виділяють заголовок і тіло конструктора. Заголовок складається, по-перше, з модифікаторів доступу (ніякі інші модифікатори недопустимі). Потім вказується ім’я класу, яке можна розцінювати двояко. Можна вважати, що ім’я конструктора співпадає з іменем класу. А можна роздивлятися конструктор безіменний, а ім’я класу — як тип значення, що повертається, бо конструктор може породжувати тільки об’єкт класу, в якому він оголошений.

public class Human {

private int age;

 

protected Human (int a) {

age=a;

}

 

public Human (String name, Human mother, Human father) {

age=0;

}

}

Закінчує заголовок конструктора throws-вираз. Він має особливу вагомість для конструкторів, оскільки створити помилку – це єдиний спосіб для конструкторів не створювати об’єкт. Якщо конструктор виконався без помилок, то об’єкт гарантовано створюється.

Додаткові властивості класів

Метод main

Віртуальна машина реалізується додатком операційної системи і запускається по звичайним правилам. Програма, написана на Java, являється набором класів. Зрозуміло, що потребується деяка вхідна точка, з якої повинне починатися виконання додатку. Такою вхідною точкою, по аналогії з мовами С/С++, є метод main(). Íàïðèêëàä:

Public static void main (String [] args) {

}

Модифікатор static дозволяє викликати метод main(), íå ñòâîðþþ÷è îá’єктів. Метод не повертає ніякого значення, хоча в С існує можливість вказати код повернення з програми. В Java для цієї мети існує метод System.exit(), який має аргумент типу int. Аргументом методу main() ÿâëÿºòüñÿ ìàñèâ ðÿäê³â. ³í çàïîâíþºòüñÿ äîäàòêîâèìè ïàðàìåòðàìè, ÿê³ áóëè âêàçàí³ ïðè âèêëèêó ìåòîäó.

Package test.first;

Public class Test {

Public static void main(String[] args) {

For (int i=0; i<args.length; i++) {

System.out.print(args[i]+»»);

}

system.out.printin();

}

}

Для виклику програми віртуальній машині передається в якості параметра ім’я класу, в якому оголошений метод main(). Îñê³ëüêè öå ³ì’я класу, а не ім’я файлу, то не повинно бути вказано ніякого розширення (.class або.java), а розташування класу записується через крапку (роздільник імен пакетів), а не за допомогою файлового роздільника. Компілятору, навпаки, передається саме ім’я та шлях до файлу. Якщо вище приведений модуль компіляції зберігається у файлі Test.java, ÿêèé ëåæèòü ó äèðåêòî𳿠test\first, òî âèêëèê êîìï³ëÿòîðà çàïèñóºòüñÿ íàñòóïíèì ÷èíîì:

javac test\first\Test.java

À âèêëèê â³ðòóàëüíî¿ ìàøèíè:

java test.first.Test

Ùîá ïðî³ëëþñòðóâàòè ðîáîòó ç ïàðàìåòðàìè, çì³íåìî ðÿäîê çàïóñêó äîäàòêó:

java test.first.Test Hello, World!

Ðåçóëüòàòîì ðîáîòè ïðîãðàìè áóäå:

Hello, World!

 

Приклад

 

/*

* Point.java

*

* Created on 26 Май 2003 г., 15:01

*/

 

package demo;

 

import java.util.*;

import java.lang.*;

 

/**

*

* @author master

* @version

*/

public class Point {

 

int x = 0;

int y = 0;

 

/** Creates new Point */

public Point() {

}

 

public boolean equals(java.lang.Object obj) {

if (obj instanceof Point){

return ((this.x == ((Point)obj).x)&&(this.y==((Point)obj).y));

}

else return false;

}

 

public String toString(){

return("x="+x+" y="+y);

}

 

 

public int hashCode(){

return (x*100+y);

}

 

public static void main(String args[]){

Point p1=new Point();

Point p2=new Point();

 

p1.x=4;

p1.y=4;

HashMap map1=new HashMap();

 

map1.put(p1, "first");

 

p2.x=4;

p2.y=4;

 

// System.out.println(map1.get(p2));

 

String s1="a";

String s2="a";

 

StringBuffer buf=new StringBuffer("my");

System.out.println(buf);

 

buf.append("_buffer").insert(3,"Best");

System.out.println(buf);

 

 

//System.out.println(p1);

//System.out.println("p1.x="+p1.x+" p1.y"+p1.y);

//System.out.println("p2.x="+p2.x+" p2.y"+p2.y);

if (s1.equals(s2)) System.out.println("Success");

else System.out.println("Fail");

 

if (s1==s2) System.out.println("Reference equality");

else System.out.println("Not");

}

 

}

 

Завдання

 

1. Створити клас Student, що містить інформацію про ім’я, вік та його ВУЗ.

2. Створити похідний клас, що містить додаткову інформацію про екзаменаційні оцінки даного студента.

3. Реалізувати конструктори базового та похідного класу. Для похідного класу реалізувати конструктори з параметром та виклик конструктора super.

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: