객체 지향 프로그래밍(Object Oriented Programming) - 변수와 메서드들을 실제로 세상에 존재하는 개념(객체)으로 묶어서 사용하는 프로그래밍 방법론 - 변수와 메서드들을 무분별하게 사용하다보면 여러 문제들이 발생하기때문에 현실에 존재하는 객체 단위로 묶어서 표현하기 시작했다. - 변수는 객체의 현재 상태를 나타낸다. - 객체 내부의 메서드는 해당 객체의 상태(변수)를 변화시킨다. 이를 메서드라고 부른다. ex : 책 - 책의 현재 상태 (변수) : 현재 펼쳐져 있는 페이지, 전체 페이지, 각 페이지의 낙서 여부, 각 페이지에 필기가 되어있는 위치의 좌표, 가격, 할인율 등 - 책의 기능 (메서드) : 다음 페이지로 넘기기, 여러 페이지 넘기기, 한 장 넘기기, 낙서 지우기 등 클래스(..
메서드 오버로딩(Overloading) - 같은 이름의 메서드를 여러개 선언할 수 있는 문법 - 매개변수의 타입 또는 개수가 다르다면 메서드 이름이 같아도 각 메서드를 구분할 수 있기때문에 또 선언할 수 있다. public static int add(int num1, int num2) { return num1 + num2; } // 매개변수의 개수가 다르면 같은 이름의 메서드를 또 선언할 수 있다. public static int add(int a, int b, int c) { return a + b + c; } // 리턴 타입으로는 오버로딩이 불가능하다. // public static double add(int num1, int num2) { // return num1 * 3.3; // } // 매개변..
메서드 (method) - 기능을 미리 정의해두고 나중에 불러다 쓰는 것 - 메서드를 정의한 시점에서는 아무것도 실행되지 않고 어딘가에서 불러다 써야 실행된다. - 나중에 재사용 할 가능성이 있는 코드들을 메서드로 만들어두면 작업의 반복을 줄일 수 있다. 메서드의 매개변수 (argument) - 메서드를 호출할 때 해당 메서드에 전달할 수 있는 값 - 메서드를 호출할 때 ()안에 전달하는 값을 인자라고 한다. - 메서드를 정의할 때 ()안에 선언하는 인자를 받을 수 있는 변수를 매개변수라고 한다. - 매개변수의 개수에는 제한이 없다. - 매개변수 타입에 ...을 찍으면 인자를 무한대로 받을 수 있다. 메서드의 타입 (리턴 타입) - 메서드의 타입은 메서드 실행 결과 돌아오는 값의 타입을 의미한다. - v..
배열 안에 배열을 넣을 수 있다.(배열을 요소로 가지는 배열을 만들 수 있다.) public class B14_Array2 { public static void main(String[] args) { int[] arr1 = {1, 3, 5, 7, 9}; int[] arr2 = {10, 20, 30, 40, 50, 60, 70, 80 ,90}; int[][] arr3 = { arr1, arr2, arr1, new int[] {9, 9, 9, 9, 9, 9}, {8, 88, 888, 8888, 88888}, arr1, }; } } public class B14_Array2 { public static void main(String[] args) { // arr4에 arr1이 가리키고 있던 배열의 주소를 넘겼..
배열(Array) - 같은 타입 변수를 여러개 선언하고 싶을 때 사용하는 문법 - 배열을 선언 할 때 선언과 동시에 배열의 크기를 정해야 한다. - 배열을 선언한 후 각 변수를 방 번호(index)로 구분한다. - 배열의 인덱스는 0 ~ 길이 -1번 까지 있다. (문자열과 유사함) - 배열은 변수와는 다르게 처음 선언할 때 모든 방의 값을 초기화 해준다. (정수 : 0, 실수 : 0, boolean : false, 참조형 : null) 배열 선언 방식 1. 타입[ ] 변수명 = new 타입[크기]; 2. 타입[ ] 변수명 = { v1, v2, v3, v4, ... }; 3. 타입[ ] 변수명 = new 타입[] { v1, v2, v3, v4, ... }; char타입 배열(문자열) public class..
삼항 연산자 - 간단한 if문을 한 줄로 사용할 수 있는 연산자 - 비교 ? 예 : 아니오; - 비교의 결과가 true라면 : 왼쪽의 값을 사용한다. - 비교의 결과가 false라면 : 오른쪽의 값을 사용한다. public static void main(String[] args) { int result = true ? 1 : 10; System.out.println(result); // 사과의 개수가 나누어 떨어질 때는 1을 더하지 않은 값을 사용 // 사과의 개수가 나누어 떨어지지 않을 때는 1을 더한 값을 사용 int apple = 220; int basket = apple % 10 == 0 ? apple / 10 : apple / 10 + 1; System.out.println("필요한 바구니의 개..
무작위 숫자 생성하기 1. java.util.Random 클래스 사용하기 2. Math.random() 메서드 사용하기 Random 클래스 사용법 // 새로운 랜덤 시드 생성 (이 시점에서 랜덤이 이미 결정 된다.) Random ran1 = new Random(); Random ran2 = new Random(); // nextInt() : 랜덤 정수 생성 for (int i = 0; i < 10; ++i) { System.out.println(ran1.nextInt()); } // nextInt(bound) : 원하는 범위의 랜덤 정수를 생성 (0 ~ n-1) for (int i = 0; i < 20; ++i) { System.out.println(ran1.nextInt(10)); } // # next..
while - for문과 사용법이 약간 다른 반복문 - 초기값과 증감값의 위치가 정해져 있지 않아 더 자유롭다. - ()안의 내용이 true라면 {}안의 내용을 계속해서 반복한다. - 증감값의 위치에 따라 결과가 달라질 수 있으므로 주의해야 한다. public static void main(String[] args) { int i = 0; // 많이 쓴다. while (i < 10) { // 0~9 System.out.println(i++); } while (i < 10) { // 1~10 System.out.println(++i); } while (i++ < 10) { // 1~10 System.out.println(i); } // 절대 쓰지 않음 (10이라고 써있지만 9번 반복하므로 가독성이 떨어짐)..