클래스 먼저 배열의 단점은 개수 제한 (자료 구조) 같은 자료형만 사용 가능. 이와 같기에 좀 더 포괄하는 개념의 클래스가 나오게 된다. 구조체 + 메소드(함수) = 클래스 // 속성 (데이터) + 기능(메소드) 구조체 : 여러 자료형 변수를 하나의 변수로 관리 예를 들자면 붕어빵틀(클래스) - 붕어빵 (객체) 자동차도면(클래스) - 자동차(객체) 클래스 장점 클래스만으로는 메모리에 올라가지 않음, 객체화를 진행 해야 메모리에 올라감 (자원 효율성) 재사용성이 좋아짐. 클래스의 객체 생성자 new + 클래스명(); (default 생성자) new Sample(); 이런식으로 선언한다. package Day16; class A{ int a; // 멤버변수(속성) void print(int a) { // 매..
매개변수는 대개 2가지 방식으로 넘어온다. Call by value reference 기본자료형 - Call by value 배열, 클래스 (참조 자료형) - Call by reference New -> reference (배열, Scanner 등..) Call by value value 값을 불러온다고 한다해도, 값만 불러온 것이지, 해당 값의 본체는 영향이 없다. Reference 배열, 클래스를 불러와 그 값을 다룬다면, 해당 값의 본체에 영향이 있다. Call by value 사용 예시 package Day13; public class CallRefTest { static void abc (int a) { a = 10; } public static void main(String[] args) { ..
package Day12; import java.util.Scanner; public class Q4 { static int kor = 0; // 국어 초기화 static int eng = 0; // 영어 초기화 static int math = 0; // 수학 초기화 static int sum = 0; // 합계 static void check(int a, int b, int c) { if (a100||b100||c100) { System.out.println("잘못된 입력 입니다."); return ; } else { System.out.printf("평균 점수 : %d", average(kor,eng,math)); System.out.printf("\n학점 : %s", makeGrade(average..
메소드를 사용하면 코드의 재사용성이 좋아진다. - 코드의 간결화 대개 Value를 가지고 기능을 담당을 한다. 기능담당 -> 조건문 반복문 -> 연산자 프로그램 메소드 1. 입력, 출력 int abc (int a ...) { return 자료형 int } 2. 출력 int abc () { return 자료형 int } 3. void 입력 void abc(int a...) { } 4. void 입력 출력 void abc() { } 자료형(void) 함수명(매개변수) { 명령문 void(x) 자료형(o) -> return } package Day11; import java.util.Scanner; public class MethodTest2 { //1. 두수를 입력 static int input() { //..
package Day10; import java.util.Scanner; public class Q2 { public static void main(String[] args) { // TODO Auto-generated method stub // 유클리드 호제법을 이용, 두수의 최대 공약수, 최소 공배수 구하기 Scanner sc = new Scanner(System.in); int ainput = 0; int binput = 0; int a = 0; int b = 0; int c = 0; int remain = 0; int temp = 0; System.out.println("첫번째 수 : "); ainput = sc.nextInt(); System.out.println("두번째 수 : "); binp..
package Test; import java.util.Random; import java.util.Scanner; public class FishGame { public static void main(String[] args) { // TODO Auto-generated method stub /* * 낚시 게임 / 호수 5*5 사이즈 / 물고기는 총 3마리, 랜덤좌표로 * 물고기 위치 지정 된 후 낚시 게임 시작, 물고기 좌표는 겹치지 않음 * X 는 포인트, ○는 호수, ● 물고기 * 더이상 이동 불가 구현, 물고기 잡고 이동하면 다시 호수 ○로 * 물고기를 다 잡으면 게임 종료 */ Random r = new Random(); Scanner sc = new Scanner(System.in); int..
package Test; public class SnailPattern { public static void main(String[] args) { // TODO Auto-generated method stub // 배열 인덱스 변화 달팽이 패턴 /* 앞에 0은 자리 수 맞추기위함, 없어도 된다. * 01 02 03 04 05 * 16 17 18 19 06 * 15 24 25 20 07 * 14 23 22 21 08 * 13 12 11 10 09 */ int[][] a = new int[5][5]; int max = a.length; int point = 1; int right = -1; int bottom = 0; int rvs = 1; for (int i = 0; i
package Day09; import java.util.Scanner; public class Q2 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner (System.in); /* 비행기 예약 시스템 - 총 18 좌석 / 9행 2열 예약할 좌석 행 열 입력 받음 예약 좌석 0 되면 프로그램 종료 이미 예약 되어있으면 남은 좌석 표시 행 열 초과시 잘못된 입력 입니다. */ int seata = 0; int seatb = 0; int result = 0; int air[][] = new int[9][2]; boolean check = true; boolean check2 =..
package Day09; import java.util.Random; public class Q1 { public static void main(String[] args) { // TODO Auto-generated method stub Random r = new Random(); int[] a = new int[5]; // 5 사이즈 배열 int temp = 0; for (int i = 0; i
int[] abc = new int[20][20] // 10번째 학생의 3번째 과목 abc[9][2] = 80 이런식으로 각 배열마다 지정해줘야 하는 데이터 수가 많아질 때 다차원 배열을 넣어줌으로, 쉽게 구분하고 가독성이 높아진다. 물론 1차원 배열로도 진행가능하나, 수학적 연산이 필요하고, 구분이 어렵다. int [][] c = new int [4] 이런식으로도 사용이 가능하다. 이후의 2차원 배열의 크기는 가변 배열 이다.