728x90

전체 글 204

JAVA Method Overriding 자바 메서드 오버 라이딩

JAVA Method Overriding 자바 메서드 오버 라이딩 메서드 오버 라이딩 super 클래스에서 상속받은 멤버를 sub 클래스에서 다시 정의하는 것이다. 기존의 멤버를 요구사항에 맞게 수정하는 효과를 가진다. super 클래스에서와 동일한 형태로 정의한다. super 클래스에서 상속된 멤버는 은폐되어 sub 클래스 객체의 메서드에서 은폐된 멤버에 접근하기 위해서는 super 참조 변수를 사용해야 한다. 오버 라이딩과 오버 로딩을 헷갈리지 말자. 구분 오버라이딩(재정의) 오버로딩(다중정의) 접근제한 부모의 멤버 함수보다 자식 멤버 함수의 접근제한이 비슷하거나 더 넓어야 한다. 상관없다. 반환형 같아야 한다. 상관없다. 메서드명 같아야 한다. 같아야 한다. 인자 (타입 / 개수) 같아야 한다. 반..

JAVA 클래스 상속

JAVA 클래스 상속 클래스 상속 관계 자바 프로그래밍에서 클래스를 상속하게 된 배경은 비슷한 동작을 하는 서로 다른 객체들을 위해 포괄적인 속성과 행위를 갖도록 구현하기 위해서이다. 비슷한 내용의 클래스가 반복되면 비효율적이기 때문에 상속을 통해 비슷한 행위에 대해 서로 다른 인터페이스를 가질 수 있다. 상속관계는 특정 클래스가 가지는 일부 속성과 행위를 다른 클래스에게 제공하기 위해 맺는 관계이다. 기존 클래스의 멤버를 그대로 이용하면서 새로운 멤버를 추가할 수 있고, 기존 클래스의 멤버를 수정하여 사용하는 것도 가능하다. 상속의 이점 코드를 재사용하여 유지보수가 용의 하고 비슷한 코드를 다시 사용할 수 있다. 그리고 연관된 일련의 클래스에 대한 규약을 정의해 비슷한 유형을 묶어 클래스 객체 간의 동..

Do it! 자바 프로그래밍 입문 6장

Do it! 자바 프로그래밍 입문 6장 1. 클래스 내부에서 자신의 주소를 가리키는 예약어를 this라고 합니다. 2. 클래스에 여러 생성자가 오버 로드되어 있을 경우에 하나의 생성자에서 다른 생성자를 호출할 때 this를 사용합니다. 3. 클래스 내부에 선언하는 static 변수는 생성되는 인스턴스마다 만들어지는 것이 아닌 여러 인스턴스가 공유하는 변수입니다. 따라서 클래스에 기반한 유일한 변수라는 의미로 클래스 변수라고도 합니다. 4. 지역 변수는 함수나 메서드 내부에서만 사용할 수 있고 스택 메모리에 생성됩니다. 멤버 변수중 static 예약어를 사용하는 static 데이터 영역 메모리에 생성됩니다. 5. 아침 출근길에 김 씨는 4,000원을 내고 별다방에서 아메리카노를 사 마셨습니다. 이 씨는 콩..

[ C++ ] 레퍼런스 Reference 캡슐화 Encapsulation 정보은닉 Private

[ C++ ] 레퍼런스 Reference 캡슐화 Encapsulation 정보은닉 Private 레퍼런스 Reference 레퍼런스를 잘 이용해야 한다.. 레퍼런스는 객체를 줄 때 지역변수와 차이가 없어 보인다.. 레퍼런스 객체의 상호작용을 중시하자. 클래스 밖에 선언된 상수는. h에서 정의한다. inline 함수는. h에서 정의한다 상수 정의 앞에 const를 추가해,. h에 저장한다 상수를 선언만 가능하고 값 할당은 불가능 레퍼런스를 이용해 객체를 받고 참조한다. 멤버 함수에 있는 멤버 변수는 그 객체에 적용이 된다.. 멤버 함수는 을. 멤버 변수 직접 접근 X 생성자, 초기화 함수 만들 때 오른쪽 부분이 아닌 왼쪽 부분의 인수에 디폴트 값을 지정하자 매개변수는 오른쪽부터 참조된다. void Init..

C++ Programming 2021.11.08

[ C++ ] Class 클래스 정의와 객체 선언

[ C++ ] Class 클래스 정의와 객체 선언 class 정의 C++에서는 클래스 정의도 하나의 선언문이기 때문에 반드시 세미콜론;으로 끝나야 한다.. C++의 멤버 필드(속성), 멤버 함수(행위)의 기본 접근 지정자는 private이다. JAVA의 기본 접근 지정자는 public이다. 객체 외부에서 멤버 함수를 호출할 수 있도록 대부분의 멤버 함수는 public이다. C++에서는 일반적으로 클래스 정의 안에 멤버 함수의 프로토타입만 선언하고 함수에 대한 것은 다른 cpp에 저장한다. 멤버 필드는 일반적으로 private에 지정해 캡슐화가 되도록 한다. instance 멤버 필드 (기본적) 각 객체 생성 시 별도의 메모리 할당 static 멤버 필드 (전역) instance 멤버 함수 static 멤..

C++ Programming 2021.11.07

[ C++ ] 반환 자료형의 세가지 형태, 매개변수의 세가지 형태

[ C++ ] 반환 자료형의 세 가지 형태, 매개변수의 세 가지 형태 [매개변수의 세 형태] 값에 의한 전달 > 인수에 영향을 주지 못함 주소에 의한 전달 (포인터) 레퍼런스에 의한 전달 (레퍼런스) 한계 : 함수 호출 문을 보고 값에 의한 전달인지 레퍼런스에 의한 전달인지 모른다. const 레퍼런스를 사용하면 실 인수 변경이 불가능하다. 매개변수를 통한 변경을 방지할 때 사용할 수 있다. [반환 자료형의 세 형태] 1. 값에 의한 반환 (복사 반환) main() int x; int y; y = increment(x); int increment(int n){ n = n + 1; return n;} 2-1. 주소(*)에 의한 반환 (포인터 매개변수, 주소 값 반환) main() int x; int* y;..

C++ Programming 2021.11.06

[ C++ ] 네임스페이스 :: namespace 포인터 Pointer

[ C++ ] 네임스페이스 :: namespace 포인터 Pointer 네임스페이스 네임스페이스는 특정 공간에 이름을 붙여 주기 위한 문법 요소이다.. ::을 사용하고 이름 공간 중첩 가능하다. 문자열을 매개변수에 전달하려고 할 때 const char* str을 사용한다. const 레퍼런스 const 레퍼런스는 상수 기능을 한다. 포인터로 값을 수정하려고 해도 수정 불가능하다. 문자열은 기본적으로 포인터를 사용해 간접 참조 활용한다. 모자란 인수 대신 매개변수의 기본값이 사용된다. 기본값 설정은 함수 선언 부분(맨 앞)에(맨앞) 명시한다. void function(int n = 0); 따라서 매개변수의 기본값은 오른쪽에 치우쳐 기술되어야 함. JAVA에서는 매개변수의 기본값을 설정할 수 없다. C의 메..

C++ Programming 2021.11.05

[ C++ ] 객체지향 프로그래밍 C++

[ C++ ] 객체지향 프로그래밍 C++ C++은 C보다 더 엄격한 type-checking을 수행한다. 최대한 상호작용하여 객체지향적으로 프로그래밍하자. 객체 : 연관된 정보들의 묶음. 데이터와 알고리즘을 하나에 넣는 것이다. 이 문제를 풀기 위해서 어떤 객체가 필요한가 가 중요하다. 실생활과 밀접하다. 문제를 크게 보아 상향식 설계로 작은 단위의 필요한 객체들을 만들고 더 큰 단위의 객체를 생성한다. 즉, 낮은 수준의 객체를 이용하여 더 높은 수준의 객체를 작성하는 것이다. 객체지향적으로 객체를 이용하면 외부의 작업에 의해서가 아니라 내부적으로 밥을 지을 수 있어야 한다.. 객체와 객체가 서로 상호작용한다. 많은 함수 호출 메커니즘이 필요하다. 개념 정의 네임스페이스 (JAVA 패키지) : 식별자가 ..

C++ Programming 2021.11.04

[ 자료구조 ] linked list 원형 연결 리스트 이중 연결 리스트

[ 자료구조 ] linked list 원형 연결 리스트 이중 연결 리스트 linkedlist에서 뒤의 노드를 읽는 것은 링크로 연결해줘야 하기 때문에 읽기, 삭제하기, 삽입하기가 어렵다. 이를 개선하기 위해 원형 연결 리스트와 이중 연결 리스트가 등장했다. 연결 리스트의 데이터 개수가 n개 일 때 n번의 링크를 따라가야 한다 => O(n) 원형 연결 리스트 원형 연결 리스트 : 연결 리스트의 맨 끝 노드를 첫 번째 노드와 연결시켜 원형으로 만든 리스트이다. 맨 끝 링크는 맨 앞 노드를 가리킨다. 포인터는 맨 끝 노드를 가리킨다. => 맨 끝과 맨 앞을 바로 찾을 수 있다. 단순 원형 리스트 삽입 삭제 맨 처음 O(1) O(1) 맨 마지막 O(1) O(n) 원형 연결 리스트의 맨 뒤에 노드를 삽입하는 알고..

CS/자료구조 2021.11.03

[ 자료구조 ] O 표기법, 큐, 스택

[ 자료구조 ] O 표기법, 큐, 스택 1. 요구사항 분석(Requirement Analysis) 프로그램 개발 사용자, 기능, 성능, 기능, 요구사항 2. 설계 (Design) 플로우 차트 등 설계 도구 사용 3. 프로그래밍 (Programming) 플로우 차트를 프로그램 언어로 바꾼다. 4. 테스트 (Testing) 사용자에 세 샘플 데이터를 받아 실험한다. 5. 사용 (Use) 전달받아 사용, 설치, 수행, 해결방법 전달 6. 사용 및 보수 단계 (Maintenance) 프로그램 기능 수행이 정확해야 한다. MAX , MIN, MID 선언하고 두 개씩 비교 left middle right 0 5 10 6 8 10 6 6 (6.5) 실수 버림 7 7 7 7 알고리즘 : 어떤 일을 하는 절차 정의 : ..

CS/자료구조 2021.11.02
728x90