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
no image
java↗7-7. 클래스 변수와 인스턴스 변수
선언위치에 따른 종류 영역 1. 클래스 영역 : iv(instance variable), cv(class variable) 2. 메서드 영역 : lv(local variable)무늬와 숫자같이 카드마다 개별적으로 달라야 하는 것은 인스턴스 변수(iv)를 사용한다.(개별 속성) 폭, 높이와 같이 카드마다 개별적으로 같아야 하는 것은 클래스 변수(cv)를 사용한다.(공통 속성)class Ex6_3Ex { public static void main(String args[]) { System.out.println("Card.width = " + Card.width); System.out.println("Card.height = " + Card.height); Card c1 = new Card(); c1.kind..
2024.03.25
no image
java↗7-6. 선언위치 변수종류
class Variables // 클래스영역 (instance variable) { int iv;// 인스턴스 변수 static int cv; // 클래스 변수(static변수, 공유변수) void method() // 메서드영역 { int lv = 0; // 지역변수 (local variable) } }// 클래스영역의 끝 1. 선언문만 가능하다. (X - y=x+3 , System.out.pritln()) (O - 변수선언 int iv; static int cv; , 메서드선언(메서드정의)) 2. 선언문의 순서는 상관없다.(메서드선언과 변수선언 순서 상관없음, 보통 변수선언->메서드선언이 일반적) cv = 객체생성x (아무때나 사용가능하다) iv = 객체생성o (객체생성을 해야 사용가능하다), 메서드..
2024.03.25