분류 전체보기 176

오버로딩

p283 오버로딩이란? 메소드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하기에 각기 다른 이름을 가져야 한다. 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개 변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다. 한 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것을 오버로딩이라 한다. 하나의 메소드 이름으로 여러 기능을 구현한다. 오버로딩의 조건 같은 이름의 메소드를 정의한다고 해서 무조건 오버로딩은 아니다. 1. 메소드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 오버로딩된 메소드들은 매개변수에 의해서만 구별될 수 있으므로 반환 타입은 오버로딩을 구현하는데 영향을 주지 못한다. ..

Java/정석 2022.05.27

기본형 매개변수, 참조형 매개변수

p264-269 call by value, reference 자바에서는 메소드를 호출할 때 매개변수로 지정한 값을 메소드의 매개변수에 복사해서 넘긴다. 매개변수의 타입이 기본형일 때는 기본형 값이 복사 되겠지만, 참조형이면 인스턴스 주소가 복사된다. 메소드의 매개변수를 기본형으로 선언하면 단순히 저장된 값만 얻지만, 참조형으로 선언 시 값이 저장된 곳의 주소를 알 수 있기에 값을 읽어오는 것은 물론 값을 변경하는 것도 가능하다. 기본형 매개변수 변수의 값을 읽기만 할 수 있다. 참조형 매개변수 변수의 값을 읽고 변경할 수 있다. 원본 10 다음 수로 변경: 1000 변경 후: 10 class Data { int x; } class test { static void change(int x) // 클래스 변..

Java/정석 2022.05.27

생성자

p291-307 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메소드'이다. 따라서 인스턴스 변수의 초기화 작업에 주로 사용되며, 인스턴스 생성 시에 실행되어야 할 작업에도 사용된다. 생성자는 메소드처럼 클래스 내에 선언되며, 구조도 메소드와 유사하지만 리턴 값이 없는 것이 다르다. 그렇다고 해서 생성자 앞에 void는 붙이지 않는다. 그냥 아무 것도 적지 않는다. 생성자 조건 1. 생성자 이름은 클래스 이름과 같다. 2. 리턴 값이 없다. (void 안 붙인다) 생성자도 오버 로딩이 가능하므로 하나의 클래스에 여러가지 생성자가 존재할 수 있다. 클래스 이름(타입 변수명, 타입 변수명, ...){} // 인스턴스 생성 시 수행 될 코드 // 주로 인스턴스 변수의 초기화 코드를 적는다 class..

Java/정석 2022.05.26

+18 생성자, 초기화 블럭 (static, instance)

p291 this & super class B { int a=30; } class A extends B { int a=20; void display() { int a=10; System.out.println(a); // 10 System.out.println(this.a); // 20 System.out.println(super.a); // 30 } } 자리 배치 = new 전원 연결 = Computer(){} = 생성자 전원 누른다 = 메소드 기본 생성자 기본 생성자가 컴파일러의 의해 추가되는 경우는 클래스에 정의된 생성자가 하나도 없을 때이다. 모든 클래스는 생성자 1개 이상 가지고 있어야 한다. 특징 1. 매개 변수가 없는 생성자 2. 생성자가 없는 경우 → 컴파일러가 기본 생성자 자동 생성 3. ..

수업 2022.05.26

+17 멤버 메소드

알아야 할 것 Object String StringBuffer Wrapper Date Calendar StringTokenizer List Map Set IO 클래스 구성 요소 1. 변수 :: 속성 2. 메소드 :: 기능, 동작 3. 생성자 :: 변수의 초기화 객체 지향 3대 요소 1. 캡슐화 (데이터 보호) 2. 재 사용 (상속, 포함) 3. 다형성 (수정, 추가) 멤버 메소드 1. // void 정렬 전: K A C B E 정렬 후: A B C E K [A, B, C, E, K] // return [A, B, C, E, K] class Util { // 정렬 후에 출력 :: void void sort(char[] c) { for(int i=0; i

수업 2022.05.25