Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб. работа 1 с C# и Java.doc
Скачиваний:
6
Добавлен:
17.08.2019
Размер:
94.21 Кб
Скачать

Часть 2. Классы и наследование в языке Java

Каркас консольного Java приложения

package cjLab1_k2_1;

/**

* Summary description for Class1.

*/

public class Class1

{

public Class1()

{

//

// TODO: Add Constructor Logic here

//

}

/** @attribute System.STAThread() */

public static void main(String[] args)

{

//

// TODO: Add code to start application here

//

}

}

Класс Book с открытыми данными и с функцией Main()

package cjLab1_k2_1;

class Book

{

public int pages;

public String name ;

public static void main()

{

Book book= new Book();

book.name= "BOOK";

book.pages= 500;

System.out.println("book.name= " + book.name);

System.out.println("book.pages= " + book.pages);

}

}

Класс Book с открытыми данными и без функции Main()

package cjLab1_k2_1;

class Book

{

public int pages;

public String name;

}

class Class1

{

public static void main()

{

Book book= new Book();

book.name= "BOOK";

book.pages= 500;

System.out.println("book.name= " + book.name);

System.out.println("book.pages= " + book.pages);

}

}

Класс Book с закрытыми данными и открытыми функциями

package cjLab1_k2_1;

class Book

{

private int pages;

private String name;

public void SetPages (int Pages) {pages= Pages;}

public int GetPages ( ) {return pages;}

public void SetName (String Name) {name= Name;}

public String GetName ( ) {return name;}

}

class Class1

{

public static void main()

{

Book book= new Book();

book.SetName("BOOK");

book.SetPages(500);

System.out.println("book.name= " + book.GetName());

System.out.println("book.pages= " + book.GetPages());

}

}

Наследование

package cjLab1_k2_1;

class Book

{

private int pages;

private String name;

public void SetPages (int Pages) {pages= Pages;}

public int GetPages ( ) {return pages;}

public void SetName (String Name) {name= Name;}

public String GetName ( ) {return name;}

}

class ManualBook extends Book

{

boolean manual;

public void SetMenual (boolean Manual) {manual= Manual;}

public boolean IsManual ( ) {return manual;}

}

class Class1

{

public static void main()

{

ManualBook manualBook= new ManualBook();

manualBook.SetName("BOOK");

manualBook.SetPages(500);

manualBook.SetMenual (true);

System.out.println("book " + manualBook.GetName()+

" contains " + manualBook.GetPages()+ " pages");

if (manualBook.IsManual()) System.out.println("book is manual\n");

else System.out.println("book isn't manual\n");

}

}

Задание

  1. Самостоятельно создать класс калькулятора Calc с закрытой целочисленной переменной accumulator и с интерфейсом:

void Init (int n) – инициализировать скрытый аккумулятор accumulator

числом n,

int Get ( ) – получить значение accumulator,

void Add (int n) – прибавить n к значению accumulator,

void Sub (int n) – вычесть n из значения accumulator.

  1. Создать класс SecondCalc, порождённый из класса Calc и расширяющий его интерфейс следующей функцией

void Mul (int n) – умножить значение accumulator на указанное число n.

  1. Создать класс ThirdCalc, порождённый из класса SecondCalc и расширяющий его интерфейс следующей функцией

void ChangeSign ( ) – изменить знак значения accumulator,

bool IsSign ( ) – получить знак значения accumulator.

  1. Создать класс FourthCalc, порождённый из класса ThirdCalc и расширяющий его интерфейс следующей функцией

void ChangeSign ( ) – изменить знак значения accumulator,

bool IsSign ( ) – получить знак значения accumulator.