Lab1 프로젝트 디렉토리 안에 모든 파일(src/*.java & bin/*.class)와 보고서 (3~4장)를 넣고 JAVA20-2_Lab1_학번_이름.zip 압축한 후 제출 (due by 9/22 => 9/29까지 연장)

week3-lab1 동영상을 참고하세요.


Single-responsibility principle
A class should only have a single responsibility, that is, only changes to one part of the software’s specification should be able to affect the specification of the class.

Open–closed principle
“Software entities … should be open for extension, but closed for modification.”

Liskov substitution principle
“Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.” See also design by contract.

Interface segregation principle
“Many client-specific interfaces are better than one general-purpose interface.”

Dependency inversion principle
One should “depend upon abstractions, [not] concretions.”

OOP Concepts

Object − objects have states and behaviors.
Class – defines the grouping of data and code, the “type” of an object
Instance – a specific allocation of a class
Message – sent to objects to make them act
Method – a “function” that an object knows how to perform
Local Variables − variables defined inside methods, constructors or blocks
Instance Variables – variables within a class but outside any method (a specific piece of data belonging to an object)
Class Variables − variables declared within a class, outside any method, with the static keyword
Abstraction – show only “relevant” data and “hide” unnecessary details of object from the user
Encapsulation – keep implementation private and seperate from interface
Polymorphism – process objects differently based on their data type, using same interface
Inheritance – hierarchical organization, share code, customize or extend behaviors

Design Pattern

Tutorialspoint Design Patterns in Java Tutorial

Javatpoint Design Patterns in Java Tutorial

DZone Design Patterns for Begineers with Java Examples

HowToDoInJava Design Patterns Tutorials

W3spoint Java Design Patterns

SourceMaking Design Patterns