
의사나 행위가 미치는 대상 ( 사전적 의미 )구체적, 추상적 데이터의 단위 ( 학생, 회원, 생산, 주문, 배송 )아침에 일어나 학교를 가는 과정을 예를 들어 봅시다.절차 지향 프로그래밍\-시간이나 사건의 흐름에 따른 프로그래밍일어난다 -> 씻는다 -> 밥을 먹는다 -
온라인 쇼핑몰에 회원 로그인을 하고 여러 판매자가 판매하고 있는 제품 중 하나를 골라 주문을 한다아침에 회사에 가는 길에 별다방 커피숍에 들려 아이스 카페라떼를 주문했다성적확인을 위해 학사 관리 시스템에 로그인 하여 수강 한 과목들의 성적을 확인했다객체의 속성은 클래스

하나의 기능을 수행하는 일련의 코드구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음함수는 이름, 매개 변수, 반환 값, 함수 몸체(body)로 구성됨출력
학생 클래스의 속성을 멤버 변수로 선언하고 메서드를 구현한다학생 클래스를 생성하여 생성된 객체(인스턴스)에 각각 다른 이름과 주소를 대입한다출력 결과
클래스는 객체의 속성을 정의 하고, 기능을 구현하여 만들어 놓은 코드 상태실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됨학생의 클래스에서 생성된 각각의 인스턴스는 각각 다른 이름, 학번, 학년등의 값을 가지게 됨new 키워드를 사용하
생성자 기본 문법 <class_name>(<argument_list) { <statements }객체를 생성할 때 new 키워드와 함께 사용 - new Student();생성자는 일반 함수처럼 기능을 호출하는 것이 아니고 객체를 생성하기 위해 new
생성자를 구현해서 사용할 수 있음클래스에 생성자를 따로 구현하면 기본 생성자 (default constructor)는 제공되지 않음생성자를 호출하는 코드(client 코드)에서 여러 생성자 중 필요에 따라 호출해서 사용할 수 있음UserInfo.javaUserInfoT
문제 1 - 출력 결과키가 180 이고 몸무게가 78 킬로인 남성이 있습니다. 이름은 Tomas 이고 나이는 37세입니다.Person.javaPersonPrint.java출력 결과문제 2 - 출력 결과음식점에 배달 주문이 들어왔습니다.FoodeOrder.javaFood

변수의 자료형클래스형으로 변수를 선언기본 자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다름참조 자료형을 사용 할때는 해당 변수에 대해 생성하여야 함 (String 클래스는 예외적으로 생성하지 않고 사용할 수 있음)학생이 수강한 과목들에
클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드private : 같은 클래스 내부에서만 접근 가능 ( 외부 클래스, 상속 관계의 클래스에서도 접근 불가)아무것도 없음 (default) : 같은 패키지 내부에서만 접근 가능
연관된 목적을 가지는 변수와 함수를 하나의 클래스로 묶어 외부에서 쉽게 접근하지 못하도록 은닉하는 것이다.대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현 하게 한다.캡슐화는 중요한 데이터를 쉽게 바꾸지 못하도록 할 때 사용

인스턴스 자신의 메모리를 가리킨다.생성자에서 또 다른 생성자를 호출 할때 사용한다.자신의 주소(참조값)을 반환한다.클래스 내에서 참조변수가 가지는 주소 값과 동일 한 주소 값을 가지는 키워드 this클래스에 생성자가 여러 개 인경우, this를 이용하여 생성자에서 다른

객체 지향 프로그램에서 객체 간에는 협력이 이루어짐협력을 위해서는 필요한 메세지를 전송하고 이를 처리하는 기능이 구현되어야 함매개 변수로 객체가 전달되는 경우가 발생객체 협력의 예
Student.javaBus.javaSubway.javaTakeTransTest.java출력 결과
01.다음과 같은 상황을 구현해 봅시다. > 출력결과 02.구현 실습 > Passenger.java > Taxi.java > TakeTest.java > 출력 결과

여러 인스턴스가 공유하는 기준 값이 필요한 경우학생마다 새로운 학번 생성카드회사에서 카드를 새로 발급할때마다 새로운 카드 번호를 부여회사에 사원이 입사할때 마다 새로운 사번이 필요한static int serialNum;인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음

serialNum 변수를 private으로 선언하고 getter/setter 구현Employee.java클래스 이름으로 호출 가능 ( 클래스 메서드, 정적 메서드 )static 메서드는 인스턴스 생성과 무관하게 클래스 이름으로 호출 될 수 있습니다.인스턴스 생성 전에
프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴입니다.static 변수, 메서드를 활용하여 구현 할 수 있습니다.Company.java여기서 getInstance() 메서드는 반드시 정적 메서드로 선언 해줘야 합니다.그 이유는 static
01.설명에 따른 객체를 구현하여 테스트 코드가 실행되도록 구현하기 > CarFactoryTest.java 02.테스트 코드 구현 실습 > Car.java > CarFactory.java > CarFactoryTest.java > 출력 결과

동일한 자료형의 순차적 자료 구조인덱스 연산자\[]를 이용하여 빠른 참조가 가능물리적 위치와 논리적 위치가 동일배열의 순서는 0부터 시작자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함배열 선언하기배열 초기화 하기배열은 선언과 동시에 자료형에 따라 초기화

기본 자료형 배열은 선언과 동시에 배열의 크기만큼의 메모리가 할당되지만, 객체 배열의 경우엔 요소가 되는 객체의 주소가 들어갈(4바이트, 8바이트) 메모리만 할당되고(null) 각 요소 객체는 생성하여 저장해야 합니다.Book.javaBookArrayTest.java출

이차원 이상으로 구현 된 배열평면 (이차원 배열) 이나 공간(삼차원 배열)을 활용한 프로그램 구현TwoDimensionTest.java출력 결과

기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야 했다.기존 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대한 구현을 해야 했다.ArrayList는 객체 배열을 좀더 효율적으로 관리하기 위해
1001학번 Lee와 1002학번 Kim, 두 학생이 있습니다. Lee 학생은 국어와 수학 2과목을 수강했고, Kim 학생은 국어, 수학, 영어 3과목을 수강하였습니다.Lee 학생은 국어 100점, 수학 50점입니다. Kim 학생은 국어 70점, 수학 85점, 영어 1

새로운 클래스를 정의 할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능을 확장하여 클래스를 구현한다.이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할때 기존 클래스를 상속한다.상속하는 클래스 : 상위 클래스, parent

회사에서 고객 정보를 활용한 맞춤 서비스를 하기 위해 일반고객(Customer)과 이보다 충성도가 높은 우수고객(VIPCustomer)에 따른 서비스를 제공하고자 한다.물품을 구매 할때 적용되는 할인율과 적립되는 보너스 포인트의 비율이 다르다. 여러 멤버십에 대한 각각

하위 클래스를 생성하면 상위 클래스가 먼저 생성 된다.new VIPCustomer()를 호출하면 Customer()가 먼저 호출 된다.클래스가 상속 받은 경우 하위 클래스의 생성자에서는 반드시 상위 클래스의 생성자를 호출 한다.Customer.javaVIPCustome
오버라이딩(overriding) : 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있다.현재 VIPCustomer 클래스의 calcPrice()메서드에는 할인율이 적용되지
하나의 동일한 형태를 통해서 다양한 방법으로 수행 및 동작하는 성질하나의 코드가 여러 자료형으로 구현되어 실행되는 것을 의미합니다.같은 코드에서 여러개의 다른 실행 결과가 나옵니다.정보은닉, 상속과 더불어 객체지향 프로그래밍의 가장 큰 특징 중 하나입니다.다형성을 잘
말 그대로, ~은 ~이다.로 상속관계를 의미한다.상속에서 is-a 관계는 일반적인 개념과 구체적인 개념과의 관계이다.상위 클래스가 일반적인 개념 클래스이고 하위 클래스가 구체적인 개념 클래스가 된다.(ex. 상위 클래스: 동물 / 하위 클래스: 포유류, 파충류)is-a
업캐스팅된 클래스를 다시 원래의 타입으로 형 변환하는 것하위 클래스로의 형 변환은 명시적으로 해야한다.원래 인스턴스의 형이 맞는지 여부를 체크하는 키워드 맞으면 true 아니면 false를 반환 한다.testDownCasting.java출력 결과

구현 코드 없이 메서드의 선언만 있는 추상 메서드(abstract method)를 포함한 클래스abstract 예약어를 사용메서드 선언(declaration) : 반환타입, 메서드 이름, 매개변수로 구성메서드 정의(definition) : 메서드 구현과 동일한 의미 구

추상 메서드나 구현 된 메서드를 활용하여 코드의 흐름(시나리오)를 정의하는 메서드final로 선언하여 하위 클래스에서 재정의 할 수 없게 함프레임워크에서 많이 사용되는 설계 패턴추상 클래스로 선언된 상위 클래스에서 템플릿 메서드를 활용하여 전체적인 흐름을 정의 하고 하

모든 메서드가 추상 메서드로 선언됨 public abstract모든 변수는 상수로 선언됨 public static final자바 8 부터 디폴트 메서드(default method)와 정적 메서드(static method) 기능의 제공으로 일부 구현 코드가 있음Calc.
클래스나 프로그램이 제공하는 기능을 명시적으로 선언일종의 클라이언트 코드와의 약속이며 클래스나 프로그램이 제공하는 명세클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현한 클래스를 사용할 수 있다.어떤 객체가 하나의 인터페이스 타입이라는 것은 그 인

하나의 인터페이스를 여러 객체가 구현하게 되면 클라이언트 프로그램은 인터페이스의 메서드를 활용하여 여러 객체의 구현을 사용할 수 있음 ( 다형성)여러가지 예DB에 회원 정보를 넣는 dao(data access object)를 여러 DB 제품이 지원될 수 있게 구현함환경