분류 전체보기 329

2차원 배열 / ArrayList / 성적 산출 예제

2차원 배열 사용하기 다차원 배열 이차원 이상으로 구현된 배열 평면 - 이차원 배열)이나 공간 - 삼차원 배열 )을 활용한 프로그램 구현 이중 for문 행이 기준이고 열을 돌리는 것으로 이해 바깥 for - 행의 갯수 안쪽 for - 열의 갯수 arr [i]. length 출력 3 / 4 의미는 전체 요소들의 길이 X, 행의 길이 O 객체 배열에서도 똑같이 적용 // 자리만 차지하고 // new 써서 입력해서 사용 객체 배열을 구현한 클래스 ArrayList java.util 패키지에서 제공되는 ArrayList 기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야 했음 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대한 구현을 해..

배열 ( array ) - 기본자료형 / 객체

자료를 순차적으로 한꺼번에 관리하는 방법 - 배열(array) 기본자료형 배열(int, double 등) / 객체(Stdent, Employee 등) 배열 배열이란? 동일한 자료형의 순차적 자료 구조 ( int 면 int 끼리 / 논리적 물리적으로 순차적 위치 ) 인덱스 연산자[ ]를 이용하여 빠른 참조가 가능 ( 0부터 시작 n-1까지 ) 물리적 위치와 논리적 위치가 동일 ( 순차적 구조 ) 배열의 순서는 0부터 시작 몇 번째 위치하는 데이터 호출하는데 빠르다. 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함 배열의 경우 데이터가 중간에 없으면 안 된다. 쭉 연결되어있어야 한다. 중간에 데이터를 뺄 거다 넣을 거다 하면 뒤에 있는 앞에 있는 요소들의 추가 작업 필요 기본 자료형 배열 선언..

Static / Static 응용 - 싱글톤 패턴 ( singleton pattern )

여러 인스턴스에서 공통으로 사용하는 변수를 선언하자 - static 변수 공통으로 사용하는 변수가 필요한 경우 여러 인스턴스가 공유하는 기준 값이 필요한 경우 학생마다 새로운 학번 생성 카드회사에서 카드를 새로 발급할 때마다 새로운 카드 번호를 부여 회사에 사원이 입사할 때마다 새로운 사번이 필요한 경우 static 변수 선언과 사용하기 static int serialNum; 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당 클래스 변수, 정적변수라고도 함(vs. 인스턴스 변수) 인스턴스 생성과 상관없이 사용 가능하므로 클래스 이름으로 직접 참조 Program -- (road) --> memory (process) 프로그램을 구동시키면 메모리에 올라가게 된다..

객체 간의 협력 (Collabration) + 예제 + 복습

객체 지향 프로그래밍에서의 협력 객체 지향 프로그램에서 객체 간에는 협력이 이루어짐 협력을 위해서는 필요한 메시지를 전송하고 이를 처리하는 기능이 구현되어야 함 매개 변수로 객체가 전달되는 경우가 발생 ( 여러 버스 중 내가 탄 버스, 여러 상품 중 내가 고른 상품 등) 학생 클래스 / 버스 클래스가 아닌 노란 버스, 핸드폰 등 객체 협력의 예 버스를 탄다 - 학생의 돈은 줄어들 것이다. 버스의 수입은 증가 승객 수 증가 ...... 쭈욱 객체간 상호관계 맺는 것이 객체 간의 협력 예제 ) 버스와 지하철을 타는 프로그래밍 James와 Tomas는 각각 버스와 지하철을 타고 학교에 갑니다. James는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불합니다. Tomas는 10000원을 ..

카테고리 없음 2021.12.26

캡슐화(encapsulation) / this가 하는 일

캡슐화 (encapsulation) 정보 은닉을 활용한 캡슐화 꼭 필요한 정보와 기능만 외부에 오픈함 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현하게 함 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다. ~~ 이것만 입력하면 자동으로 쭉~ 나오게 일관된 1-2개만 사용하게 하므로 디버깅 잡기와 기능 추가에 유용 캡슐화는 하나의 방법이다. 객체지향 설계에서 변수나 메서드를 모두 공개하는 것이 아니라 어떻게 공개해서 사용하는 쪽으로 하여금 좀 더 편하게, 효율적으로 사용하게 하느냐 객체 또한 오류 없이 잘 관리할 수 있느냐도 중요한 포인트 예제 ) 리포트 만들기 ① StringBuffer ①. append 메서드 ② ①스트링 값으로 리턴..

참조 자료형 변수 / 접근 제어 지시자 / 정보 은닉

참조 자료형 기본 자료형과 다르게 생성해서 사용해야 됨 클래스형으로 변수를 선언 기본 자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다름 참조 자료형을 사용할 때는 해당 변수에 대해 생성하여야 함 (String 클래스는 예외적으로 생성하지 않고 사용할 수 있음 - new 안 써도 사용 가능) 참조 자료형 정의하여 사용하기 학생이 수강한 과목들에 대한 성적을 산출하기 위한 경우 / 학생 클래스 속성에 과목이 모두 있으면 불합리 학생(Student)과 과목(Subject)에 대한 클래스를 분리하여 사용하고 / Subject 클래스를 활용하여 수강한 과목들의 변수의 타입으로 선언 선언된 Subject 변수는 생성된 인스턴스가 아니므로, Student의 생성자에서 생성하여 사용 ..

복습하기 - 객체지향, 함수, 생성자

복습해봅시다 (객체 구현하기) 다음 설명에 해당되는 객체를 구현하고 해당 정보를 출력해 보세요 키가 180 이고 몸무게가 78 킬로인 남성이 있습니다. 이름은 Tomas 이고 나이는 37세입니다 음식점에 배달 주문이 들어왔습니다. 주문 접수 번호 : 202011020003 주문 핸드폰 번호 : 01023450001 주문 집 주소 : 서울시 강남구 역삼동 111-333 주문 날짜 : 20201102 주문 시간 : 130258 주문 가격 : 35000 메뉴 번호 : 0003 1 - 객체와 showinfo 사용해서 구현 객체를 선언하고 생성자 2가지 생성하고 출력 함수 생성 2가지 생성자 불러서 사용 결과 값 동일하게 출력 GOOD:) 2 - 주문접수번호는 유일한 식별자되어야한다. / 생성자로 입력받아서 구현..

생성자와 생성자 오버로딩

생성자 생성자 기본 문법 ([ 사용하려면 같은 이름의 생성자 디폴트로 추가해줌 : 생성자 오버 로딩 생성자는 객체가 생성될 때 호출된다. 생성자 오버로딩 (overloading) 여러 가지 생성자를 정의하는 생성자 오버로딩 사용자가 편리하게 사용하기 위해 사용한다 사용하는 쪽에서 필요에 따라 선택해서 생성자를 쓰도록 편의를 위해서 생성자 정의 하기 생성자를 구현해서 사용할 수 있음 클래스에 생성자를 따로 구현하면 기본 생성자 (default constructor)는 제공되지 않음 생성자를 호출하는 코드(client 코드)에서 여러 생성자 중 필요에 따라 호출해서 사용할 수 있음 위의 예제로 적용 시 - ① 디폴트 생성자를 불러와서 하나하나 값 입력 후 사용도 가능하고 ② this 생성자를 불러와서 입력값..

카테고리 없음 2021.12.25

함수와 메서드

함수 (function) 하나의 기능을 수행하는 일련의 코드 구현된(정의된) 함수는 호출하여 사용하고, 호출된 함수는 기능이 끝나면 제어가 반환됨 호출 시 - 메모리 공간 새로 생김(스택 메모리) -> 반환되면 자동으로 사라짐 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음 함수 정의하기 함수는 이름, 매개 변수, 반환 값, 함수 몸체(body)로 구성됨 함수 처리에 필요한 input이 있는지 - 있으면 ( 괄호 ) 안에 타입과 같이 써준다. - 매개변수 없으면 - ( 괄호 ) 만 써준다 () 반환 값 필요하면 return 값과 같은 타입 형 써준다 여기서는 int add (~~~~ 반환 값 필요 없으면 void add ( ~~ int add(int num1, int n..

객체와 객체 지향 프로그래밍

객체 ( Object ) 의사나 행위가 미치는 대상 ( 사전적 의미 ) 구체적, 추상적 데이터의 단위 ( 학생, 회원, 생산, 주문, 배송 ) 절차 지향 프로그램과 객체 지향 프로그래밍 절차 지향 프로그래밍 아침에 일어나 학교를 가는 과정을 예를 들어 봅시다. 절차 지향 프로그래밍 일어난다 -> 씻는다 -> 밥을 먹는다 -> 버스를 탄다-> 요금을 지불한다 -> 학교에 도착 시간이나 사건의 흐름에 따른 프로그래밍 객체 지향 프로그래밍 객체 지향 프로그램은 어떻게 구현하는가? 객체를 정의 하고 각 객체 제공하는 기능들을 구현하고 각 객체가 제공하는 기능들 간의 소통(메시지 전달)을 통하여 객체 간의 협력을 구현 생활 속에서 객체 찾아보기 1. 온라인 쇼핑몰에 회원 로그인을 하고 여러 판매자가 판매하고 있는..