일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- super
- 반복문
- do while문
- 배열
- Photoshop
- Singleton
- static
- if문
- 생성자
- 파라미터
- illustrator
- Java
- Overload
- 조건문
- Interface
- expand
- 변수
- length
- 멤버변수
- 형변환
- while문
- Override
- symbol
- 메서드
- After effects
- private
- 클래스
- switch문
- 상속
- for문
- Today
- Total
목록메서드 (18)
Ms'Note

메서드 오버로드 (Overload) 원칙적으로 하나의 클래스 안에서는 동일한 이름의 메서드가 두 개 이상 존재할 수 있지만, 이를 가능하게 하는 예외적인 처리 기법이다. 이름이 동일한 메서드를 정의하기 위한 조건 메서드간의 파라미터가 서로 달라야 한다. 파라미터의 데이터 타입이 다르다. (데이터 형이 동일하고 변수의 이름이 다른 경우는 동일한 파라미터로 인식된다.) 파라미터의 개수가 다르다. 서로 다른 데이터형을 갖는 파라미터들의 전달 순서가 다르다. 리턴형이 다른 경우는 Overload의 성립에 아무런 영향을 주지 않는다. Overload의 예시 파라미터의 데이터 형이 서로 다르기 때문에 Overload가 성립된다. public void foo(int a) { } public void foo(long ..

메서드 재정의 과정에서 오타가 발생한 경우 부모 클래스의 say() 메서드를 재정의 하는 과정에서 개발자의 실수로 인해 "sai()"라고 메서드가 추가되었다면 Java는 새로운 메서드를 추가한 것으로 인식하고 특별한 에러를 표시하지 않는다. say() 메서드가 재정의 된 것으로 생각한 개발자는 이 경우 의도하지 않은 결과를 만나게 될 것이다. 메서드 재정의 과정에서의 오타 방지 옵션 "@Override"는 이 키워드가 명시된 위치 아래에 정의되는 메서드가 부모 클래스에 존재하지 않을 경우 구문 에러로 처리한다. 부모 클래스의 메서드를 재정의 하고자 할 경우, 의도치 않은 실수를 예방하기 위한 '오타 방지용 옵션'이다. 여러 개의 메서드를 재정의 한다면 재정의 되는 모든 메서드들 위에 각기 명시해야 한다.

Super 키워드 클래스의 상속관계에서 자식 클래스가 부모 클래스를 가리키는 예약어 사용 방법 멤버변수 이름 앞에 명시 부모 클래스의 멤버변수를 의미한다. 하지만 부모 클래스의 멤버변수는 이미 모두 상속되어 있기 때문에 이 경우에는 this 키워드를 사용하는 것과 동일한 결과이기에 잘 사용하지 않는다. 메서드 이름 앞에 명시 부모 클래스의 메서드를 의미한다. 재정의 되지 않은 메서드 > 이미 상속되어 있기 때문에 this 키워드를 사용하는 것과 동일한 결과를 갖는다. 재정의 된 메서드 > Override된 메서드 이름 앞에 사용하게 되면 재정의 되기 이전의 원본 메서드를 의미한다. 키워드 자체를 메서드처럼 사용한다. 부모 클래스의 생성자를 의미한다. 메서드 이름 앞에 명시하는 경우에 대한 실행흐름 Kor..

육군, 해군, 공군 클래스 살펴보기 아래의 클래스 다이어그램에서 육군(Army), 해군(Navy), 공군(AirForce)은 Unit이라는 클래스를 통하여 공통 속성을 정의하고 있다. 공통속성 - 이름(멤버변수 및 getter, setter), 공격(attack() 메서드) 같은 이름이지만 다른 동작을 수행해야 하는 필요성 모든 군대는 '공격'이라는 공통된 특성을 갖지만 공격하는 방법은 육/해/공군이 서로 다르게 처리되어야 한다. 부모 클래스가 갖고 있는 기능을 자식 클래스가 재정의 부모 클래스에 정의된 것과 동일한 이름을 갖는 메서드를 자식 클래스가 정의한 경우, 부모 클래스의 기능은 자식에게 가려진다. 이렇게 부모의 기능을 재정의 하는것을 메서드 Override라고 한다. 하나의 이름으로 다양한 효과..
공통 이름 규칙 영어 + 숫자 + 언더바(_)의 조합이고, 첫 글자는 반드시 영어로 표기한다. 클래스 이름 규칙 첫 글자는 대문자로 시작, 나머지 글자는 소문자로 표시한다. 두개 이상의 단어를 조합해야 할 경우 새로운 단어는 대문자로 시작한다. class MyClass class Student class NetworkHelper 메서드, 변수 이름 규칙 대부분 소문자로 구성되지만, 두개 이상의 단어를 조합할 경우 새로운 단어는 대문자로 표시한다. int age String userName String memberCount 상수 이름 규칙 모두 대문자로 표시한다. final double PI final int COLOR
생성자의 활용 생성자는 멤버변수의 값을 초기화 하기 위해 사용한다. class Book{ String subject; String content; // 생성자 - 객체가 생성될 때, 자동으로 실행되는 특수한 메서드 // 특징 : 리턴형을 명시하지 않는다. 클래스와 이름이 동일하다. Book(){ System.out.println("-------생성자 실행됨-------"); this.subject = "JAVA입문"; this.content = "JAVA는 ~~~..."; } void read(){ System.out.println("------read() 실행됨------"); System.out.println(this.subject); System.out.println(this.content); } ..
this 키워드를 활용한 멤버변수와 메서드의 접근 멤버변수는 지역변수와 구별하기 위하여 가급적 this를 통하여 접근한다. 메서드에 접근할 때 this 키워드를 사용하는 것이 필수적인 것은 아니다. class Member { String name; int age; String getName() { return this.name; } void setName(String name) { this.name = name; } int getAge() { return this.age; } void setAge(int age) { this.age = age; } void say() { System.out.println(this.getName()); System.out.println(this.getAge()); } } ..
특정 기능을 목적으로 하는 메서드 메서드는 클래스 안에서 기능(동작)을 구현하기 위한 목적이다. class Clac { int plus(int x, int y) { return x + y; } int minus(int x, int y) { return x - y; } int times(intx, int y) { return x * y; } int divide(int x, int y) { int result = 0; if(y != 0) { // 0으로 나누기 불가능 하므로 result = x / y; } return result; } int f(int x, int y) { int result = plus(x, y) + times(x, y); return result; } } public class Main..
메서드를 포함한 클래스 변수의 유효성 범위 -> 멤버변수는 모든 메서드가 공유한다. (전역변수) class HelloWorld { String message; void sayHello() { System.out.println(message); } void setEng() { message = "Hello JAVA"; } void setKor() { message = "안녕하세요. 자바"; } } public class Main03 { public static void main(String[] args) { HelloWorld hello = new HelloWorld(); // 메서드 호출 hello.setEng(); hello.sayHello(); hello.setKor(); hello.sayHello(..

클래스의 기본 작성 방법 class 클래스이름 { 멤버변수; void 메서드이름() { ... } } 'class'라는 예약어와 클래스의 이름을 명시하고 {…}블록을 구성한다. 멤버 변수는 여러 개 존재할 수 있다. 이때, 값을 선언과 동시에 할당할 수도 있고, 객체를 통해 간접적으로 할당할 수도 있다. 메서드는 여러 개 존재할 수 있다. 클래스 안에 포함된 멤버변수와 메서드를 특정에 따라 그룹화 하기 위한 기법이 클래스를 작성하는 것이라고 이해할 수 있다. 객체의 생성 방법 객체의 선언 클래스이름 객체이름; 객체의 할당 객체이름 = new 클래스이름(); 선언과 할당의 통합 클래스이름 객체이름 = new 클래스이름(); 객체의 사용 객체 안에 포함된 변수나 메서드는 점(.)으로 연결하여 접근한다. 객체..