|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Студент: 822201
Meханика не сдал Программирование сдал Внутренний класс определяет сущность предметной области “результат экзамена” (класс ExamResult), которая обычно непосредственно связана в информационной системе с объектом класса Student. Класс ExamResult в данном случае определяет только методы доступа к своим атрибутам и совершенно невидим вне класса Student, который включает методы по созданию и инициализации массива объектов внутреннего класса с любым количеством экзаменов, который однозначно идентифицирует текущую успеваемость студента. Внутренний класс может быть объявлен также внутри метода или логического блока внешнего класса. Видимость такого класса регулируется областью видимости блока, в котором он объявлен. Но внутренний класс сохраняет доступ ко всем полям и методам внешнего класса, а также ко всем константам, объявленным в текущем блоке кода. Класс, объявленный внутри метода, не может быть объявлен как static, а также не может содержать статические поля и методы. /*пример # 12: внутренний класс, объявленный внутри метода: TeacherLogic.java*/ package chapt06;
public abstract class AbstractTeacher { private int id; public AbstractTeacher(int id) { this. id = id; } public abstract boolean excludeStudent(String name); } package chapt06;
public class Teacher extends AbstractTeacher {
public Teacher(int id) { super (id); } public boolean excludeStudent(String name) { return false; } } package chapt06;
public class TeacherCreator { public TeacherCreator(){}
public AbstractTeacher createTeacher(int id) { // объявление класса внутри метода class Dean extends AbstractTeacher { Dean(int id){ super (id); } public boolean excludeStudent(String name) { if (name!= null) { // изменение статуса студента в базе данных return true; } else return false; } } // конец внутреннего класса
if (isDeanId (id)) return new Dean(id); else return new Teacher(id); } private static boolean isDeanId(int id) { // проверка декана из БД или return (id == 777); } } package chapt06;
public class TeacherLogic { public static void excludeProcess(int deanId, String name) { AbstractTeacher teacher = new TeacherCreator().createTeacher(deanId);
System. out. println("Студент: " + name + " отчислен:" + teacher.excludeStudent(name)); } public static void main(String[] args) { excludeProcess (700, "Балаганов"); excludeProcess (777, "Балаганов"); } } В результате будет выведено: Студент: Балаганов отчислен:false Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |