본문 바로가기

JAVA

(41)
[혼공자] Chapter 06-4~6 메소드, 인스턴스 멤버, 패키지와 접근 제한자 06-4 메소드 자바에서 메소드의 선언 방법은 여느 프로그래밍 언어에서의 메소드 선언 방법과 비슷하다. 리턴타입 메소드이름 (매개변수타입 매개변수) { 실행문 } ex. int add(int a, int b) { return a+b; } * 메소드 이름의 길이는 실행 속도나 메모리와는 무관하니 가독성을 위해 길게 줘도 괜찮음 클래스 안에서 선언한 메소드는 dot연산자와 ( )를 이용해 호출할 수 있다. Ex. Car.setNumber(9101); ▶ 매개 변수의 개수를 모르는 경우 => 어찌보면 당연한 소리지만 기발한 아이디어 같아 정리함 매개변수의 개수를 모르는 경우, Step 1 : 일단 메소드의 매개변수를 배열 형태로 선언한 다음 Step 2 : 전달할 변수를 배열로 만들어서 메소드에 전달하면 됨 ..
[혼공자] Chapter 06-1~3 객체 지향 프로그래밍, 생성자 06-1 객체 지향 프로그래밍 ▶ 객체란? 쉽게 말하면, 속성을 가지고 있는 무언가 어렵게 말하면, 속성(필드)과 기능(메소드)이 묶인 프로그램 단위. 처음 객체지향 프로그래밍을 배울 때 예시로 들었던 자동차를 생각하면 쉽다. 자동차의 색이라는 속성, 움직이는 기능이 있기 때문에 자동차를 객체로서 다룰 수 있는 것이다. Q. 왜 자바에서는 필드 & 메소드라고 해요..? C++에서는 멤버 변수 & 멤버 함수 아니었음? A. 두 표현 다 맞는데 아무래도 자바에서는 '필드', '메소드' 라는 단어를 쓰는 것 같음. 같은 의미이니 그냥 그러려니 하고 넘어가자! ▶ 객체 지향 프로그래밍이란? 완성품 객체를 모델링하기 위해 부품 객체들을 '조립'하는 것 cf. 잘 조립하는 방법 - 객체를 잘 설계해야함 (인터페이스..
[혼공자] Chapter 05-3 열거 타입 05-3 열거타입 * enumerate : 열거하다 열거 타입 = 전에 C++에서도 배웠던 enum / 열거형, 열거체 로도 불림 ❗ 열거타입 이것만 기억하자 ❗ - 집합인 '열거 타입'와 그 안의 '열거 상수'로 구성됨 - 열거 타입을 자료형으로 갖는 변수를 선언할 수 있음 - 열거 타입의 변수에는 열거 상수만 들어갈 수 있음 - 장점 : 비슷한 것들끼리 묶어둠 & 가독성 좋아짐 cf. 특히 switch문에서 열거 상수를 사용하면 가독성 좋아짐 public class EnumTest { public static void main(String[] args) { Week today = Week.FRIDAY; switch(today){ case MONDAY: System.out.println("월요일입니다...
[혼공자] Chapter 05-2 배열 파이썬이나 JS 같이 호락호락한 배열을 생각했다면 오산이다 05-2 배열 ▶ 배열 주의사항 - 배열은 같은 타입의 데이터만 저장 가능 (선언과 동시에 저장할 수 있는 타입이 결정됨) - 한 번 생성된 배열은 길이를 바꿀 수 없음 ▶ 배열 선언 방법 대괄호를 타입 옆 or 이름 옆에 붙여 선언할 수 있다. ① int[ ] intArray; ② int intArray[ ]; 우리가 항상 썼던 main(String[] args)도 배열! => 이걸로 외우면 쉬울 듯! (( 책에서 직접 언급은 안했지만 전자를 더 자주 쓰는 것 같음 )) ▶ 배열 초기화 ※ 원소들을 { }로 감싸고 있는 것 주의! ※ ① 선언과 동시에 초기화 int[ ] scores = { 83, 90, 87 }; ② 선언 당시에는 null, ..
[혼공자] Chapter 05-1 참조 타입과 변수 05-1 참조 타입과 변수 ▶ 참조 타입 이름의 의미 기본 타입은 변수에 실제 값을 저장하지만, 참조 타입은 변수에 '메모리 주소'를 저장한다. 주소를 통해 객체를 참조한다는 뜻에서 '참조' 타입이라 부른다. ▶ 참조 타입(reference type)의 종류 배열 타입, 열거 타입, 클래스, 인터페이스 (String은 클래스에 속함) int는 소문자로 쓰고 String은 대문자로 쓰는 이유도 타입이 기본 vs 참조로 다르기 때문!😯 ⭐JVM의 메모리 사용 영역⭐ cf. JVM == 자바 가상 머신 / 하나의 컴퓨터라고 생각하면 됨 메소드 영역(Method Area) - 클래스의 정보가 저장되는 공간 - JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역 - 자바는 특정 클래스가 사용되면 해당 클래스..
[혼공자] Chapter 04. 조건문과 반복 04-1 조건문 : if문, switch문 ▶ if문 VS switch문 공통점 : 조건문 차이점 : if문은 괄호 안 조건식의 t/f에 따라 명령문을 선택하고, switch문은 괄호 안의 '값'에 따라 명령문을 선택함. if문은 따로 break가 필요 없지만, switch문은 해당되는 case를 찾고 이후 break가 없으면 다음 case들은 값과 상관없이 실행됨 (fallthrough) (일단은 초보니까 이걸 어떻게 활용할까 생각하지 말고, break를 안쓰면 오류가 난다고 생각하고 있자.) break문, 문법, 익숙하지 않음 때문에 switch를 안쓰는 경향이 있는데 (특히 내가) 실무에서는 가독성 때문에 많이 쓴다고 함 => 그러니까 지금부터라도 많이 쓰려고 연습하자..@ 참고 : 실무에서 사용되..
[혼공자] Chapter 03. 연산자 03-1 연산자와 연산식 ▶ 연산자 우선순위 거의 헷갈릴 일 없을거고 정 헷갈리면 괄호를 쓰면 됨 03-2 연산자의 종류 ▶ 전위 & 후위 연산 전위 : 바로 +or-1 후위 : 해당 라인 다 처리하고 이후에 +or-1 이'전', 이'후'로 기억하면 편함 int x = 5, y = 5; int a, b; a = ++x; b = y--; System.out.printf("x = %d, y = %d, a = %d, b = %d", x,y,a,b); // x = 6, y = 4, a = 6, b = 5 ▶ 문자열 & 정수의 결합 문자열과 정수의 결합 연산은 + 를 통해서 이뤄짐 ※ 주의 - 문자열을 나중에 붙이면 앞에 산수가 된 후에 문자열 결합이 일어남 ※ "JDK" + 3 + 3.0 => "JDK33.0"..
[혼공자] Chapter 02. 변수와 타입 나름 전공생이니 이부분은 한번 훑고만 넘어가기로 했는데 생각보다 오래걸림;; 02-1 변수 ▶ 변수 작성 규칙 영어 대소문자를 구분함 첫문자는 소문자, 둘 이상 단어가 합쳐진 경우 뒤에 있는 단어의 첫 문자를 대문자로 하는게 관용 변수에 값을 대입(초기화)를 해야 변수가 메모리에 저장됨 선언만 하고 초기화하지 않은 경우엔 기본 값이 저장됨 (ex. int면 0, char이면 null 등) ▶ 변수 사용 범위 메소드 안에서 선언된 변수는 메소드 실행 이후 메모리에서 없어짐 => 자신이 속한 블록 내부에서만 사용될 수 있음 02-2 기본 타입 cf. 여기서 리터럴은 다 '값 그 자체'를 의미한다고 보면 됨 (리터럴의 의미 = 변하지 않는 값) ex. int a = 1; 에서 1이 리터럴 참고 : https:..