Часть 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");
}
}
Задание
Самостоятельно создать класс калькулятора Calc с закрытой целочисленной переменной accumulator и с интерфейсом:
void Init (int n) – инициализировать скрытый аккумулятор accumulator
числом n,
int Get ( ) – получить значение accumulator,
void Add (int n) – прибавить n к значению accumulator,
void Sub (int n) – вычесть n из значения accumulator.
Создать класс SecondCalc, порождённый из класса Calc и расширяющий его интерфейс следующей функцией
void Mul (int n) – умножить значение accumulator на указанное число n.
Создать класс ThirdCalc, порождённый из класса SecondCalc и расширяющий его интерфейс следующей функцией
void ChangeSign ( ) – изменить знак значения accumulator,
bool IsSign ( ) – получить знак значения accumulator.
Создать класс FourthCalc, порождённый из класса ThirdCalc и расширяющий его интерфейс следующей функцией
void ChangeSign ( ) – изменить знак значения accumulator,
bool IsSign ( ) – получить знак значения accumulator.
