본문 바로가기

객체지향

[객체지향프로그래밍] static 응용 - 싱글톤 패턴(singleton pattern) 📌 싱글톤 패턴이란? 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 static 변수, 메서드를 활용하여 구현할 수 있음 📌 싱글톤 패턴으로 회사 객체 구현하기 생성자는 private 으로 선언 private Company() {} 클래스 내부에 유일한 private 인스턴스 생성 private static Company instance = new Company(); 외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공 public static Company getInstance() { if(instance == null ) { instance = new Company(); } return instance; } 🍀 CompanyTest.java publi.. 더보기
[객체지향프로그래밍]11_static 변수 📌 공통으로 사용하는 변수가 필요한 경우 여러 인스턴스가 공유하는 기준 값이 필요한 경우 학생마다 새로운 학번 생성 카드회사에서 카드를 새로 발급할때마다 새로운 카드 번호를 부여 회사에 사원이 입사할 때마다 새로운 사번이 필요한 경우 📌 static 변수 선언과 사용하기 static int serialNum; 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당 클래스 변수, 정적변수 라고도 함 (vs. 인스턴스 변수) 인스턴스 생성과 상관없이 사용 가능하므로 클래스 이름으로 직접 참조 Student.serialNum = 100; 📌 static 변수 테스트하기 🍀 Emplyee.java public class Emplyee { public static int .. 더보기
[객체지향프로그래밍]10_객체 간의 협력 (collaboration) 📌 객체 지향 프로그래밍에서의 협력 객체 지향 프로그램에서 객체 간에는 협력이 이루어짐 협력을 위해서는 필요한 메시지를 전송하고 이를 처리하는 기능이 구현되어야 함 매개 변수로 객체가 전달되는 경우가 발생 객체 협력의 예 James 와 Tomas 는 각각 버스와 지하털을 타고 학교에 간다. James 는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불한다. Tomas 는 10000원을 가지고 있었고, 초록색 지하철을 타면서 1200원을 지불한다. 두 학생이 버스와 지하처를 타는 상황을 구현해보자. 🍀 Student.java public class Student { String studentName; int grade; int money; public Student(String stu.. 더보기
[객체지향프로그래밍]08_캡슐화(encapsulation) 📌 캡슐화 (encapsulation) 정보 은닉을 활용한 캡슐화 꼭 필요한 정보와 기능만 외부에 오픈함 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만을 제공하여 일관된 기능을 구현하게 함 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다. ex) 레포트 만들기 예제 🍀 MakeReport.java public class MakeReport { StringBuffer buffer = new StringBuffer(); private String line = "----------------------------------------\n"; private String title = "이름 \t 주소 \t\t 전화번호 \n"; private void makeHeader().. 더보기
[객체지향프로그래밍] 03 _ 함수와 메서드 ■ 함수란 (function) 하나의 기능을 수행하는 일련의 코드 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음 ■ 함수 정의하기 함수는 이름, 매개 변수, 반환 값, 함수 몸체(body) 로 구성됨 int add(int num1, int num2) { int result; result = num1 + num2; return result; } ■ 함수 구현하기 예제 public class FunctionsTest { public static int addNum(int num1, int num2) { int result; result = num1 + num2; return result; .. 더보기
[객체지향프로그래밍] 01 _ 객체(Object)란? ■ 객체 (Object) 의사나 행위가 미치는 대상 (사전적 의미) 구체적, 추상적 데이터의 단위 (학생, 회원, 생산, 주문, 배송) ■ 객체 지향 프로그램과 절차 지향 프로그래밍 아침에 일어나 학교를 가는 과정을 예를 들어보자. 절차 지향 프로그래밍 - 시간이나 사건의 흐름에 따른 프로그래밍 (대표적으로 C언어가 있다) - 일어난다 -> 씻는다 -> 밥을 먹는다 -> 버스를 탄다 -> 요금을 지불한다 -> 학교에 도착 객체 지향 프로그래밍 - 대표적으로 C++, C#, Python, JavaScript ... ■ 객체 지향 프로그램은 어떻게 구현하는가? 객체를 정의 각 객체 제공하는 기능들을 구현 각 객체가 제공하는 기능들 간의 소통 (메시지 전달) 을 통하여 객체간의 협력을 구현 더보기

반응형