▶오늘의 주제 : 생성자 생성자는 new 연산자로 호출되는 중괄호 {} 블록입니다. 객체 생성 시 초기화를 담당하며, 모든 클래스에 반드시 하나 이상 존재합니다. 클래스 내부에 선언을 생략하면 기본 생성자가 자동으로 추가됩니다. ▶기본 생성자 모든 클래스는 반드시 생성자가 존재하며, 생성자를 하나 이상 가질 수 있습니다. 클래스 내부에 생성자 선언을 생략했다면 중괄호 블록 내용이 비어 있는 기본 생성자를 바이트 코드에 자동 추가합니다. public class Car { } // 컴파일 public class Car { public Car() { } //자동 추가 //Car() : 기본 생성자 } Car myCar = new Car(); // Car(); 기본 생성자 ▶생성자 선언 클래스 (매개변수선언, ..
▶오늘의 주제 필드는 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳입니다. 필드를 선언하고 생성한 뒤 이를 읽고 변경하는 방법을 알아보겠습니다. ▶필드 선언 필드 선언은 클래스 중괄호 {} 블록 어디서든 존재할 수 있습니다. 생선자 선언과 메소드 선언의 앞과 뒤 어떤 곳에서도 필드 선언이 가능합니다. 하지만 생선자와 메소드 중괄호 {}블록 내부에는 선언 될 수 없습니다. 생성자와 메소드 중괄호 블록 내부에 선언된 것은 모두 로컬 변수가 됩니다. 타입 필드 [ = 초기값]; 타입은 필드에 저장할 데이터의 종류를 결정합니다. 타입에는 기본타입 (byte, short, int, long, float, double, boolean)과 참조타입 (배열, 열거, 터페이스)이 모두 올 수 있습니다. 초기..
▶오늘의 주제 : 객체 지향 프로그래밍 객체를 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍이라고 합니다. 객체란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별 가능한 것을 말합니다. 현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링 이라고 합니다. 객체가 다른 객체의 기능을 이용하는 것이 바로 메소드 호출입니다. ▶객체 간의 관계 객체 관계의 종류에는 집합관계, 상용관계, 상속관계가 있습니다. 집합 관계 : 객체는 하나의 부품이고 하나의 완성품에 해당합니다. 사용 관계 : 객체 간의 상호작용을 말합니다. 상속 관계 : 상위(부모) 객체를 기반으로 하위(자식) 객체를 생성하는 관계를 말합니다. ▶객체와 클래스 자바에서는..
1. while문과 Math.random() 메소드를 이용해서 2개의 주사위를 던졌을 때 나오는 눈을 (눈1, 눈2) 형태로 출력하고, 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성해보세요. 눈의 합이 5가 되는 조합은 (1,4), (4,1), (2,3), (3,2)입니다. public class Practice { public static void main(String[] args) { while (true) { int num1 = (int) (Math.random() * 6) + 1; int num2 = (int) (Math.random() * 6) + 1; System.out.println("(" + num1 + ", " + num2 + ")"); if ..
▶오늘의 주제 :열거 타입 ▶ 열거 타입 : 열거 타입은 한정된 값인 열거 상수 중에서 하나의 상수를 저장하는 타입입니다. 열거 타입을 선언하기 위해서는 열거 타입의 이름을 정하고 해당 이름으로 소스 파일을 생성해야 합니다. 열거 타입 이름은 관례적으로 첫 글자를 대문자로 하고 나머지는 소문자로 구성합니다. Week.java MemberGrade.java public enum 키워드는 열거 타입을 선언하기 위한 키워드이며, 반드시 소문자로 작성해야 합니다. 열거 타입 이름은 소스 파일 이름과 대소문자가 모두 일치해야 합니다. public enum 열거타입이름 {...} public class Practice { public enum Week{ MONDAY, TUESDAY, WEDNESDAY, THURSD..
▶오늘의 주제 : 배열 ▶ 배열이란? : 배열은 같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여해놓은 자료구조입니다. score 배열의 각 인덱스는 각 항목의 데이터를 읽거나 저장하는데 사용되며 대괄호[]에 기입됩니다. 인덱스는 0부터 시작합니다. 1. 배열은 같은 타입의 데이터만 저장할 수 있습니다. - int 배열은 int 값만 저장 가능하고, String 배열은 문자열만 저장합니다. 또한 선언과 동시에 저장할 수 있는 타입이 결정됩니다. 2. 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없습니다. ▶배열 선언 : 배열을 사용하기 위해서는 우선 배열 변수를 선언해야 합니다. 1. 타입[] 변수; 2. 타입 변수[]; 배열 변수는 참조 변수에 속합니다. 배열도 객체이므로 힙 ..
▶오늘의 주제 : 참조 타입과 참조 변수 ▶자바의 타입은 기본 타입과 참조 타입으로 분류됩니다. ▶기본 타입과 참조 타입 : 기본 타입으로 선언된 변수와 참조 타입으로 선언된 변수의 차이점은 저장되는 값입니다. 기본 타입 : byte, char, short, int, long. float, double, boolean 변수는 실제 값을 변수 안에 저장합니다. 참조 타입 : 배열, 열거, 클래스, 인터페이스 변수는 메모리 번지를 변수 안에 저장합니다. 변수를 통해 객체를 참조한다는 뜻입니다. ▶메모리 사용 영역 : JVM은 운영체제에서 할당받은 메모리 영역을 다음과 같이 세부 영역으로 구분해서 사용합니다. 메소드 영역 : 메소드 영역에는 코드에서 사용되는 클래스들을 클래스 로더로 읽어 클래스별로 정적 필드..
▶오늘의 주제 :반복문: for문, while문, do-while문 : 제어문의 종류는 조건문과 반복문이 있는데, 조건문에는 앞 절에서 배운 if문, switch문이 있고, 반복문에는 이번 절에서 배울 for문, while문, do-while 문이 있습니다. 제어문 블록이 실행 완료되었을 때 조건문일 경우는 정상 흐름으로 돌아오지만, 반복문일 경우는 제어문 처음으로 다시 되돌아가 반복 실행합니다. 이것을 루핑(looping)이라고 합니다. ▶for문 : 주어진 횟수만큼 실행문을 반복 실행할 때 적합한 반복 제어문입니다. public class Practice { public static void main(String[] args) { System.out.println("어떤 혜택을 원하세요?"); for..
▶오늘의 주제 : 조건문: if문, switch문 자바 프로그램은 main()메소드의 시작 중괄호까지 위에서부터 아래로 실행하는 흐름을 가지고 있습니다. 이러한 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것을 흐름 제어문 혹은 제어문이라고 합니다. ▶if문 : if문은 조건식의 결과에 따라 블록 실행 여부가 결정됩니다. 조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean 타입 변수가 올 수 있습니다. public class Practice { public static void main(String[] args) { int score = 93; if(score>=90) { System.out.println("점수가 90보다 큽니다."); System.out..
▶오늘의 주제 : 연산자의 종류 - 연산자는 산출 방법에 따라 산술, 부호, 문자열, 대입, 증감, 비교 연산자로 구분하고, 피연산자 수에 따라 단항, 이항, 삼항 연산자로 구분합니다. 이 절에서는 파연산자 수에 따라 구분하는 연산자를 기준으로 각각의 연산 방법을 알아보겠습니다. 단항 연산자: ++X; 이항 연산자: x + y; 삼항 연산자: (sum > 90) ? "A" : "B"; ▶단항 연산자 : 피연산자가 단 하나 뿐인 연산자입니다. 부호 연산자(+,-) : 부호 연산자는 양수 및 음수를 표시하는 +,-를 말합니다. boolean 타입과 char 타입을 제외한 나머지 기본 타입에 사용 할 수 있습니다. 부호 연산자로 쓰일 때에는 하나의 피연산자만 필요합니다. 주의 할 점은 부호 연산자의 결과가 i..