생성자 : 객체를 생성할 때 필요한 함수 // 이 정도로 정리하면 충분. Class A{ int a; // 멤버변수(속성) void print(int a // 매개변수 또는 인자){ // 메소드(기능) int b; // 메소드변수 또는 지역변수 } // default 생성자 -> 선언을 안하면 자동 추가 A(){ } } 내가 생성자를 따로 선언할 수도 있다. 디폴트 생성자는 선언이 안 되어 있을 때 자동 추가되는 것이고, 만약 다른 것이 선언 되어 있으면, 추가되지 않는다. 생성자를 명시적으로 선언할 때, 디폴트 생성자와 동일한 형태로 만들 수도 있다. ???? A a = new A(); 생성자(default 생성자) Class B{ B(int a, int b){ } } 생성자의 형태를 따라줘야 객체를 ..

클래스 도입 전, 한 가지 알고 가야할 것 자바는 객체지향언어 입니다.(O) 자바는 클래스지향언어 입니다.(X) 등장배경 1. 개수 제한 => 배열은 크기가 한 번 정해지면 변동이 불가능 2. 똑같은 자료형만 사용가능(특히 배열)하므로, 여러 정보를 한 번에 가져다가 저장하기가 어렵다. 이걸 보완하기 위해 먼저 등장한 개념 "구조체" 구조체 =>여러 자료형 변수를 하나의 변수로 관리하는 매커니즘. 그런데, 구조체 역시 한계가 왔다. 그래서 구조체에 함수(메서드) 개념을 더하여 => 클래스가 등장했다. 클래스란... 클래스 속성(데이터) + 기능(메소드) 의 집합 예시) 개(dog) 개 -> 이름(String), 키(int), 나이(int) // 짖는다, 움직인다, 꼬리를 흔든다. 속성 (필드) 기능(메서..

재귀함수 : 내가 나를 부르는 함수 더 정확하게는 함수 내부에서 자기가 자기를 호출하면서 작업을 수행하는 방식. * 재귀함수는 특정한 종료 조건이 있어야 함. => 그렇지 않으면 함수가 무한히 호출되어 StackOverflowError와 같은 예외가 발생할 수 있음. 코드 예시 static int abc(int a){ if(a == 0){ return 0 } else { return abc(a-1) + a; } } 이러한 상황인 것인데, 먼저 abc(5)가 호출되면 0이 아니므로 abc(4) 가 되고 num에는 5가 저장 다음으로는 abc(4)가 호출되는데 0이 아니므로 abc(3)이 되고 num에는 4가 저장 다음으로는 abc(3)이 호출되는데 0이 아니므로 abc(2)가 되고 num에는 3이 저장 다..

1. main문만 짜기 import java.util.Scanner; public class StarAndGugu { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { System.out.println("[원하시는 메뉴를 선택하세요]"); System.out.println("1. 구구단 출력"); System.out.println("2. 별 찍기 출력"); System.out.println("3. 종료"); System.out.print("번호 선택 > "); int num = sc.nextInt(); if(num == 1) { System.out.println("[다음 중에서 고르시오]"..
소스코드 public class Q2 { static String inputString() { Scanner sc = new Scanner(System.in); System.out.print("문자열 입력하세요 : "); return sc.next(); } static int inputNum() { Scanner sc = new Scanner(System.in); System.out.print("1. 짝수 2 홀수 : "); return sc.nextInt(); } static void printHJ(int num,String str) { for(int i = num-1;i
소스코드 public class Q3 { // 주고 안받고 static int makeRandom() { Random r = new Random(); return r.nextInt(26); } // 주고 받고 static int intSum(int r) { return 65 + r; } // 주고 받고 static char makeChar(int result) { return (char)result; } // 안주고 안받고 static void run() { String result = ""; for(int i = 0;i
소스코드 package Day12; import java.util.Scanner; public class Q1_1 { static int add(int a, int b) { return a + b; } static void minus(int a, int b) { System.out.println("결과값 : "+(a-b)+" 입니다."); } static int mul() { Scanner sc = new Scanner(System.in); int[] array =input(sc); return array[0] * array[1]; } static void div() { Scanner sc = new Scanner(System.in); int[] array =input(sc); System.out.pri..