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");
}
}
Задание
4) Самостоятельно создать класс калькулятора Calc с закрытой целочисленной переменной accumulator и с интерфейсом:
void Init (int n) – инициализировать скрытый аккумулятор accumulator
числом n,
int Get () – получить значение accumulator,
void Add (int n) – прибавить n к значению accumulator,
void Sub (int n) – вычесть n из значения accumulator.
5) Создать класс SecondCalc, порождённый из класса Calc и расширяющий его интерфейс следующей функцией
void Mul (int n) – умножить значение accumulator на указанное число n.
6) Создать класс ThirdCalc, порождённый из класса SecondCalc и расширяющий его интерфейс следующей функцией
void ChangeSign () – изменить знак значения accumulator,
bool IsSign () – получить знак значения accumulator.
7) Создать класс FourthCalc, порождённый из класса ThirdCalc и расширяющий его интерфейс следующей функцией
void ChangeSign () – изменить знак значения accumulator,
bool IsSign () – получить знак значения accumulator.
Для самостоятельной работы
Часть 3. Классы и наследование в языке С++/CLI
Каркас консольного С++.NET приложения
/////////////////////////
// ccLab1k2_1
#include "stdafx.h"
#using <mscorlib.dll>
using namespace System;
int _tmain()
{
// TODO: Please replace the sample code below with your own.
Console::WriteLine(S"Hello World");
return 0;
}
Структура Book
/////////////////////////
// C++.NET File ccLab1k2_1
// Структура Book
#include "stdafx.h"
//#using <mscorlib.dll>
//#include <stdio.h>
//#include <string.h>
//using namespace System;
struct Book
{
int pages;
char name [20];
};
int _tmain ()
{
// TODO: Please replace the sample code below with your own.
//Console::WriteLine (S"Hello World");
printf ("Hello!\n");
Book book;
book.pages= 500;
strcpy (book.name, "BOOK");
printf ("book %s contains %d pages\n", book.name, book.pages);
return 0;
}
Класс Book
/////////////////////////
// C++.NET File ccLab1k2_2
// Класс Book
#include "stdafx.h"
class Book
{
public:
int pages;
char name [20];
};
int _tmain ()
{
printf ("Hello!\n");
Book book;
book.pages= 500;
strcpy (book.name, "BOOK");
printf ("book %s contains %d pages\n", book.name, book.pages);
return 0;
}
=========================================
/////////////////////////
// C++.NET File ccLab1k2_2
// Класс Book
#include "stdafx.h"
class Book
{
int pages;
char name [20];
public:
void SetPages (int Pages) {pages= Pages;}
int GetPages () {return pages;}
void SetName (char* pName) {strcpy (name, pName);}
char* GetName () {return name;}
};
int _tmain ()
{
printf ("Hello!\n");
Book book;
//book.pages= 500;
book.SetPages (300);
//strcpy (book.name, "BOOK");
book.SetName ("BOOK");
printf ("book %s contains %d pages\n ", book.GetName (),
book.GetPages ());
return 0;
}
Наследование
/////////////////////////
// C++.NET File ccLab1k2_4
// Класс Book
#include "stdafx.h"
class Book
{
int pages;
char name [20];
public:
void SetPages (int Pages) {pages= Pages;}
int GetPages () {return pages;}
void SetName (char* pName) {strcpy (name, pName);}
char* GetName () {return name;}
};
class BookOther: public Book
{
bool manual;
public:
void SetMenual (bool Manual) {manual= Manual;}
bool IsManual () {return manual;}
};
int _tmain ()
{
printf ("Hello!\n");
BookOther book;
book.SetPages (300);
book.SetName ("BOOK");
book.SetMenual (true);
printf ("book %s contains %d pages\n", book.GetName (),
book.GetPages ());
if (book.IsManual()) printf ("book is manual\n");
else printf ("book isn't manual\n");
return 0;
}
Задание
8) Самостоятельно создать класс калькулятора Calc с интерфейсом:
void Init (int n) – инициализировать скрытый аккумулятор accumulator
числом n,
int Get () – получить значение accumulator,
void Add (int n) – прибавить n к значению accumulator,
void Sub (int n) – вычесть n из значения accumulator.
9) Создать класс OtherCalc, порождённый из класса и расширяющий его интерфейс следующей функцией
void Mul (int n) – умножить значение accumulator на указанное число n.
10) Создать класс AnotherCalc, порождённый из класса OtherCalc и расширяющий его интерфейс следующей функцией
void ChangeSigh () – изменить знак значения accumulator,
bool IsSigh () – получить знак значения accumulator.