본문 바로가기
728x90

> 프로그래밍 언어/JAVA34

[ch6-22] 호출 스택(call stack) 스택에서 넣을 때와 꺼낼 때 스택은 위에 뚫려진 공간으로만 넣거나 뺄 수 있다 메서드가 호출되면 메소드 작업이 필요하게 되고, 메소드가 작업을 수행하는데 필요한 메모리공간이 호출스택에 만들어짐 작업하다가 작업이 종료되면 호출스택에서 메소드가 사용하던 메모리 공간이 제거됨 main 메소드가 println 메소드 호출하면 main 메소드 위에 println 메소드가 올라감 main메소드는 대기상태가 되고, println은 실행상태가 됨 첨에는 main메소드가 실행중이었음 println 메서드가 작업을 마치면 (println 종료) 종료되고, 스택이 사라짐 다시 main 메서드로 돌아와 main 메서드가 실행상태가 됨 아래에 있는 메서드가 위의 메서드를 호출함 맨 위의 메서드 하나만 실행중이고, 나머지는 대기.. 2023. 1. 26.
[ch11-22~24] Iterator, Enumeration, Map과 Iterator 컬렉션에 저장된 데이터를 읽어올 때 사용 핵심은 위에 두 개 동그라미 표시된 것 hasNext: 읽어올게 남아있는 지 확인 Object next: 읽어오기 1) 확인 2) 읽기 더 이상 읽어올 것이 없으면 false로 리턴 Enumeration은 Iterator의 구버전 거의 같다고 봄 Enumeration이 가진 메서드 이름만 다를 뿐 위의 표처럼 하는 일이 같음 true면 다음 요소 읽어옴 false면 반환 Listlterator는 next 뿐만 아니라 previous도 있다 next: 한방향으로만 감 (다음요소만 읽을 수 있음) Listlterator는 양방향 다음요소 + 이전요소 읽어올 수 있음 잘은 안 씀 컬렉션: List / Set / Map 컬렉션들 마다 구조가 다르고 요소를 읽어오는 방법이.. 2023. 1. 25.
[ch6-20,21] return문, 반환 값 printGugudan은 dan을 입력하면 그 dan을 출력해주는 메서드 3단을 출력해주고 싶으면 3을 넣어주면 됨 if 문에 입력한 dan의 값 2단부터 9단 사이가 아니면 (return) 더 이상 작업 진행하지 않고 호출한 곳으로 되돌아간다 원래는 메서드 마지막에 return 써야 함 매번 쓰기 귀찮으니 생략하는 것 근데 return문을 생략할 수 있는 경우는, 반환타입이 void 일 때만 가능 반환타입이 void가 아닌 경우, 반드시 return문이 필요 (return문 생략불가) 그나저나 이 작성문에는 문제가 있어서 에러가 발생함 에러 내용: return문이 없음 if 조건식이 참일 땐, return문이 있고 거짓일 땐, 없는 것 이런식으로 참일 때랑, 거짓일 때 return문이 있도록 작성해야 .. 2023. 1. 24.
[ch6-17~19] 메서드 호출 메서드를 호출해야 괄호 안 문장 실행됨 메서드 이름을 먼저 작성 메서드가 작업하는데 필요한 값을 괄호안에 적어준다 (없을 때는 아무것도 안써도 됨) ex) print99danAll(); 구구단을 출력하는데 딱히 add 메서드의 경우엔 값이 2개 있음 (덧셈 하려면 필요한 값들) 값 두 개 주면 int 값 출력 한다는 뜻 print99danAll 메서드의 반환타입은 void 즉, 출력이 없다는 뜻. 내가 작업을 수행하고 그 결과를 줄 게 없다는 의미 3하고 5가 매개변수의 x와 y에 대입됨 3+5 의 값 8이 int result 에 저장된다 그리고 result 변수가 메서드 수행 결과로 반환된다 (return) 메서드 호출할 때 int result 이 부분이 없어도 된다 뒤에 add(3,5)가 메서드 호출.. 2023. 1. 24.
[ch6-14~16] 메서드란? 메서드의 선언부와 구현부 똑같은 코드 2번 들어가는 것 : 코드의 중복 오른쪽 코드는 배열출력을 별도의 메서드로 만든 것 printArr: 메서드 이름 하나의 작업을 하는 코드를 괄호 안에 집어 넣고 하나로 묶은 후 이름을 붙여준 것이 메서드 printArr(numArr) - 메서드 호출 즉, 메서드 사용하는 것 이 3문장이 1줄로 줄어듦 얘 또한 1줄로 줄어듦 메서드 : 작업 단위로 문장들을 묶어서 이름 붙인 것 메서드가 작업을 할 때 필요한 값을 주고 그 결과를 받을 수도 있다 메서드: 한가지 기능만 수행하도록 작성하는게 좋음 메서드: 선언부, 구현부로 구성 반환타입: 메서드가 작업한 작업결과의 타입을 보는 것 add메서드: 두 개 이상의 입력 값이 필요 입력은 0~n개 가능 출력 값은 0~1개 출력(반환타입): 예시에는 작.. 2023. 1. 23.
[ch6-12,13] 클래스 변수 인스턴스 변수 카드의 속성 - 무늬/숫자/폭/높이 객체마다 숫자하고 무늬는 개별 값 : 카드 객체마다 다르게 유지돼야 하는 값 폭,높이 : 모든 객체가 공통적으로 가져야 하는 값 같은 속성이지만, 무늬와 숫자는 개별적이고 폭,높이는 공통적이어야 함 속성 중에 개별적인 것은 iv 공통적인 것은 cv 속성 중에 개별적인 값을 가져야 하는 것은 인스턴스 변수(iv) 를 사용하고 모든 인스턴스가 공통으로 갖는 속성에는 static을 붙여서 클래스 변수(cv)를 씀 객체를 생성 cv는 왼쪽 보단 오른쪽 Card.width = 200; 처럼 써야 함. 클래스 이름이 붙어야 한다 좌측처럼 쓰면 iv로 오해할 수 있다 cv 예시 : 객체생성없이 사용가능 iv 예시 객체를 만들 때 생김 c1 하고 c2 는 서로 다른 객체인데 cv 값.. 2023. 1. 23.
728x90