본문 바로가기

전체 글

(118)
오버로딩 오버로딩 한 클래스 안에 같은 이름의 메서드 여러 개를 정의하는 것 // 대표적인 오버로드의 예시 println // 같은 이름의 메서드의 여러 타입이 들어간다. void println() void println(boolean x) void println(char x) void println(char[] x) void println(double x) void println(float x) void println(int x) void println(long x) void println(Object x) void println(String x) 오버로딩이 성립하기 위한 조건 3가지 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 3. 반환 타입은 오버로딩에 영향을 미치지 않..
static 메서드와 instance 메서드 static 메서드 와 instance 메서드 * 인스턴스 메서드 * iv : instance variable * im : instance method - 인스턴스 생성 후 , ' 참조변수.메서드 이름() ' 으로 호출 - 인스턴스 멤버(iv, im) 와 관련된 작업을 하는 메서드 - 메서드 내에서 인스턴스 변수(iv) 사용 가능 * 클래스 메서드 (static 메서드) - 객체 생성 없이 ' 클래스 이름. 메서드 이름() ' 으로 호출 - 인스턴스 멤버(iv, im) 와 관련 없는 작업을 하는 메서드 - 메서드 내에서 인스턴스 변수(iv) 사용 불가 - ex) Math.random(), Math.round() .... static 메서드 와 instance 메서드 예시 class MyMath2 { lo..
참조형 매개변수 참조형 매개변수 변수의 값을 읽고 변경할 수 있다. (read & write) class Data2 { int x}; class Ex6_7 { public static void main(String[] args) { Data2 d = new Data2(); d.x = 10; System.out.println("main() : x = " + d.x); // 결과 main() : x = 10 change(d); // change 메서드 System.out.println("After change(d.x)"); // 결과 After change(d.x) System.out.println("change() : x = " + d.x); // 결과 main() : x = 1000 } static void change..
기본형 매개변수 기본형 매개변수 변수의 값을 읽기만 할 수 있다. 변경을 할 수 없다.(read only) class Data { int x}; class Ex6_6 { public static void main(String[] args) { Data d = new Data(); d.x = 10; System.out.println("main() : x = " + d.x); // 결과 main() : x = 10 change(d.x); // change 메서드 System.out.println("After change(d.x)"); // 결과 After change(d.x) System.out.println("change() : x = " + d.x); // 결과 main() : x = 10 } static void ch..
호출 스택 호출 스택 (call stack) 스택(stack) : 밑이 막힌 상자 . 위에 차곡차곡 쌓인다. Last In First Out 구조 호출 스택(call stack) : 메서드 수행에 필요한 메모리가 제공되는 공간 , 메서드가 호출 되면 호출 스택에 메모리 할당, 종료 되면 해제 * main method 가 println method 를 호출 하면, main method 는 대기 상태가 되고 println method 는 실행 상태로 바뀐다. * println method 가 종료 되면 스택에서 사라지고 다시 main method 로 돌아온다. 그리고 main method 는 다시 실행 상태로 바뀐다. 쉽게 정리하면, 아래 있는 메서드가 위에 있는 메서드를 호출한 것이며 맨 위의 메서드 하나만 실행 상..
return문 반환값 return 문 실행 중인 메서드를 종료하고 호출한 곳으로 되돌아간다. void printGugudan(int dan) { if(!(2
메서드 호출 메서드의 호출 * 메서드를 호출하는 방법 : 메서드 이름 ( 값1, 값2 , ....) ; print99danAll();// void print99danAll()을 호출 int result = add(3, 5);// int add(int x, int y)를 호출하고, 결과를 result에 저장 메서드의 호출 예시 class MethodEx { public static void main(String args[]) { MyMath mm = new MyMath(); // 계산식이 있는 클래스인 MyMath 객체 생성 long result = mm.max(5, 3);// MyMath의 math 메서드 호출 long result1 = mm.add(5, 3);// MyMath의 add 메서드 호출 long resu..
메서드의 선언부와 구현부 메서드란? 1. 문장들을 { } 로 묶어 놓은 것 -> 작업 단위로 문장들을 묶어서 이름을 붙인 것 public static void main(String args[]) { // 배열 초기화 for (int i=0; i < 10; i++) numArr[i] = (int) (Math.random() * 10); // 배열 출력 for (int i = 0; i < 10; i++) System.out.printf("%d", numArr[i]); System.out.println(); for (int i = 0; i < 10; i++) System.out.printf("%d", numArr[i]); System.out.println(); // --------- 위의 두 코드는 중복 -------------- /..