no image
java↗7-15. 생성자(constructor)
생성자(constructor) - 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드' 인스턴스 = 객체(iv 묶음) 즉, iv를 초기화 하는 메서드가 생성자이다. 1. 객체생성 , 2. iv 초기화와 같은 행동을 계속 번갈아가면서 해줘야하는 불편함이 있다. class Ex6_10_1 { public static void main(String args[]) { Time t = new Time(); // 객체생성 t.hour = 12; // iv 초기화 t.minute = 34; t.second = 56; } } class Time{ int hour; int minute; int second; } 생성자 추가 후, 생성자 호출로 간단하게 나타낼 수 있다. Time t = new Time(12 ,34..
2024.03.28
no image
java↗7-14. 오버로딩(overloading)
오버로딩(overloading) 한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것 오버로딩이 성립하기 위한 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 3. 반환 타입은 영향없다. int add(int a, int b) { return a+b; } int add(int x, int y) { return x+y; } // 오버로딩이 안된다. int add(int a, int b) { return a+b; } long add(int a, int b) { return (long)(a+b); } // 오버로딩이 안된다. long add(int a, long b) { return a+b; } long add(long a, int b) { return a+b; } ..
2024.03.27
no image
java↗7-13. static 메서드와 인스턴스 메서드
static 메서드 : 앞에 static이 붙은 것 인스턴스 메서드 : 앞에 static이 붙지 않은 것 인스턴스 메서드 - 인스턴스 생성 후, '참조변수.메서드이름()'으로 호출 - 인스턴스 멤버(iv, im)와 관련된 작업을 하는 메서드 - 메서드 내에서 인스턴스 변수(iv) 사용가능 static 메서드(클래스메서드) -> Math.random() - 객체생성없이 '클래스이름.메서드이름()'으로 호출 - 인스턴스 멤버(iv, im)와 관련없는 작업을 하는 메서드 - 메서드 내에서 인스턴스 변수(iv) 사용불가 객체는 iv 묶음이다. static 메서드는 객체(iv)가 필요 없다. ★여기서 long add() {return a+b}는 iv(인스턴스변수), static long add(long a, lo..
2024.03.27
no image
java↗7-12. 기본형 매개변수, 참조형 매개변수
기본형 매개변수 - 변수의 값을 읽기만 할 수 있다.(read only) 참조형 매개변수 - 변수의 값을 읽고 변경할 수 있다.(read & write) lv(local variable)은 지역변수이다. change 메서드의 x는 지역변수이기에 x = 1000은 아래 메서드에서만 적용된다. 기본형 매개변수는 읽기만 가능하고 값을 바꿀 수 없기 때문에, Data x의 값은 바뀌지 않는다. 만약에, change 메서드에서 Data x의 x 값을 바꾸고 싶으면, 기본형 매개변수가 아니라, 참조형 매개변수로 변경해야 한다. 단순히 참조형은 객체 주소(정수)를 주고 받는다고 생각하면 된다. Data3 d2 = copy(d); 여기서 copy에 참조변수가 들어가지 않는 이유는 1. stactic 메서드여서 2. 같..
2024.03.27
no image
java↗7-11. 호출스택(call stack)
호출스택(call stack) 스택(stack) : 밑이 막힌 상자. 위에 차곡차곡 쌓인다. 호출스택(call stack)이란? 메서드 수행에 필요한 메모리가 제공되는 공간 메서드가 호출되면 호출스택에 메모리 할당, 종료되면 해제 아래 있는 메서드가 위의 메서드를 호출한 것이다. 맨 위의 메서드 하나만 실행 중, 나머지는 대기중
2024.03.27
no image
java↗7-10. return문 반환값
return문 실행 중인 메서드를 종료하고 호출한 곳으로 되돌아간다. 구구단 출력 메서드 class Ex6_4 { public static void main(String args[]) { MyMath mm = new MyMath(); mm.printGugudan(3); // 구구단 3단을 출력 class MyMath { void printGugudan(int dan) { for (int i = 1; i
2024.03.27
no image
java↗7-9. 메서드호출
메서드이름(값1,값2,...); print99danAll(); // void print99danAll()을 호출 (void - 반환타입, 출력이 없다 = 내가 작업을 수행하고 줄 것이 없다) int result = add(3, 5); // int add(int x ,int y)를 호출하고, 결과를 result에 저장 (int - 출력, int x, int y - 입력) class Ex6_4 { public static void main(String args[]) { MyMath mm = new MyMath(); long result1 = mm.add(5L, 3L); long result2 = mm.subtract(5L, 3L); long result3 = mm.multiply(5L, 3L); double..
2024.03.27
no image
받지말고 주라
받지말라고 주라는 계시의 말씀이 정말 마음속으로 와닿아 이렇게 글을 남깁니다.
2024.03.25
no image
java↗7-8. 메서드란? 메서드의 선언부와 구현부
메서드란? 1. 문장들을 묶어놓은 것. {} - 작업단위로 문장들의 묶어서 이름 붙인 것 2. 값(입력)을 받아서 처리하고, 결과를 반환(출력) - 객체지향개념안에 있는 함수 그것을 메서드라고 한다.(함수는 클래스에 독립적) (println이 어떻게 동작하는지 모르듯이 메서드를 블랙박스라고도 한다) 메서드의 장점 - 코드의 중복을 줄일 수 있다. - 코드의 관리가 쉽다. - 코드를 재사용할 수 있다. - 코드가 간결해서 이해하기 쉬워진다. 매개변수(입력) 개수는 0~n개 메서드 출력은 0~1개{배열이나 객체(여러개의 변수)로 해결한다}
2024.03.25