의사나 행위가 미치는 대상 ( 사전적 의미 )구체적, 추상적 데이터의 단위 ( 학생, 회원, 생산, 주문, 배송 )아침에 일어나 학교를 가는 과정을 예를 들어 봅시다.절차 지향 프로그래밍 \-시간이나 사건의 흐름에 따른 프로그래밍 일어난다 -> 씻는다 -> 밥을 먹
온라인 쇼핑몰에 회원 로그인을 하고 여러 판매자가 판매하고 있는 제품 중 하나를 골라 주문을 한다아침에 회사에 가는 길에 별다방 커피숍에 들려 아이스 카페라떼를 주문했다성적확인을 위해 학사 관리 시스템에 로그인 하여 수강 한 과목들의 성적을 확인했다객체의 속성은 클래스
하나의 기능을 수행하는 일련의 코드구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음함수는 이름, 매개 변수, 반환 값, 함수 몸체(body)로 구성됨스택
학생 클래스의 속성을 멤버 변수로 선언하고 메서드를 구현한다학생 클래스를 생성하여 생성된 객체(인스턴스)에 각각 다른 이름과 주소를 대입한다
클래스는 객체의 속성을 정의 하고, 기능을 구현하여 만들어 놓은 코드 상태실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가지게 됨 가령, 학생의 클래스에서 생성된 각각의 인스턴스는 각각 다른 이름, 학번, 학년등의 값을 가지게 됨new 키워드
생성자 기본 문법<class_name>(<argument_list){ <statements}객체를 생성할 때 new 키워드와 함께 사용 - new Student();생성자는 일반 함수처럼 기능을 호출하는 것이 아니고 객체를 생성하기 위해 new 와
생성자를 구현해서 사용할 수 있음클래스에 생성자를 따로 구현하면 기본 생성자 (default constructor)는 제공되지 않음생성자를 호출하는 코드(client 코드)에서 여러 생성자 중 필요에 따라 호출해서 사용할 수 있음UserInfo.javaUserInfoT
키가 180 이고 몸무게가 78 킬로인 남성이 있습니다. 이름은 Tomas 이고 나이는 37세입니다.음식점에 배달 주문이 들어왔습니다. 주문 접수 번호 : 202011020003 주문 핸드폰 번호 : 01023450001 주문 집 주소 : 서울시 강남구 역삼
변수의 자료형 클래스형으로 변수를 선언기본 자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다름참조 자료형을 사용 할때는 해당 변수에 대해 생성하여야 함 (String 클래스는 예외적으로 생성하지 않고 사용할 수 있음)학생이 수강한 과목
클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드private : 같은 클래스 내부에서만 접근 가능 ( 외부 클래스, 상속 관계의 클래스에서도 접근 불가)아무것도 없음 (default) : 같은 패키지 내부에서만 접근 가능
꼭 필요한 정보와 기능만 외부에 오픈함대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현 하게 함각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다.
인스턴스 자신의 메모리를 가리킴생성자에서 또 다른 생성자를 호출 할때 사용자신의 주소(참조값)을 반환 함클래스 내에서 참조변수가 가지는 주소 값과 동일 한 주소 값을 가지는 키워드클래스에 생성자가 여러 개 인경우, this를 이용하여 생성자에서 다른 생성자를 호출할 수
객체 지향 프로그램에서 객체 간에는 협력이 이루어짐협력을 위해서는 필요한 메세지를 전송하고 이를 처리하는 기능이 구현되어야 함매개 변수로 객체가 전달되는 경우가 발생객체 협력의 예
Student.javaBus.javaSubway.javaTakeTransTest.java
출력결과
여러 인스턴스가 공유하는 기준 값이 필요한 경우학생마다 새로운 학번 생성카드회사에서 카드를 새로 발급할때마다 새로운 카드 번호를 부여회사에 사원이 입사할때 마다 새로운 사번이 필요한static int serialNum;인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음
serialNum 변수를 private으로 선언하고 getter/setter 구현Employee.java클래스 이름으로 호출 가능 ( 클래스 메서드, 정적 메서드 )static 메서드는 인스턴스 생성과 무관하게 클래스 이름으로 호출 될 수 있음인스턴스 생성 전에 호출
프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴static 변수, 메서드를 활용하여 구현 할 수 있음 생성자는 private으로 선언클래스 내부에 유일한 private 인스턴스 생성외부에서 유일한 인스턴스를 참조할 수 있는 public 메
CarFactoryTest.java
동일한 자료형의 순차적 자료 구조인덱스 연산자\[]를 이용하여 빠른 참조가 가능물리적 위치와 논리적 위치가 동일배열의 순서는 0부터 시작자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함배열 선언하기 배열 초기화 하기배열은 선언과 동시에 자료형에 따라 초기화
기본 자료형 배열은 선언과 동시에 배열의 크기만큼의 메모리가 할당되지만, 객체 배열의 경우엔 요소가 되는 객체의 주소가 들어갈(4바이트, 8바이트) 메모리만 할당되고(null) 각 요소 객체는 생성하여 저장해야 함Book.javaBookArrayTest.java객체
이차원 이상으로 구현 된 배열평면 (이차원 배열) 이나 공간(삼차원 배열)을 활용한 프로그램 구현
기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야 했음배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대한 구현을 해야 함ArrayList는 객체 배열을 좀더 효율적으로 관리하기 위해 자바에서
예제 시나리오 1001학번 Lee와 1002학번 Kim, 두 학생이 있습니다. Lee 학생은 국어와 수학 2과목을 수강했고, Kim 학생은 국어, 수학, 영어 3 과목을 수강하였습니다. Lee 학생은 국어 100점, 수학 50점입니다. Kim 학생은 국어 70점, 수학 85점, 영어 100점입니다. Student와 Su...