2018-11-28 수업 내용 정리

2018-11-28 수업

이클립스 프로젝트에 파란 느낌표가 있는 경우 동작하지 않는다.

설정 파일이 꼬여서 컴파일이 제대로 안될 가능성이 높다.

1
gradle cleanEclipse

이클립스와 관련된 설정 파일이 모두 날라간다(폴더는 그대로 있는 경우도 있다)

자바 프로젝트 폴더 구성

첫 날 했으므로 링크로 대체하지만 간단히 요약하자면

  • gradle init –type… 을 이용한다.
  • build.gradle에서 이클립스 플러그인을 추가
  • 이클립스 플러그인 설치

리터럴(literal), 변수(variables), 키보드 입력 사용 연습

  • 과제1 해결

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public class App {
    public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.println("번호?");
    int num = Integer.parseInt(scan.nextLine());
    System.out.println("수업명?");
    String classTitle = scan.nextLine();
    System.out.println("수업내용?");
    String classContent = scan.nextLine();
    System.out.println("시작일?");
    Date classStartDate = Date.valueOf(scan.nextLine());
    // sql date 클래스를 이용했다.
    // Date.valueOf()는 String으로 들어온 값을 date 객체로 만들어주는 것
    System.out.println("종료일?");
    Date classEndDate = Date.valueOf(scan.nextLine());
    // int month = classEndDate.getMonth();
    // 이렇게도 된다.
    System.out.println("총수업시간?");
    int totalClassTime = Integer.parseInt(scan.nextLine());
    System.out.println("일수업시간?");
    int dayClassTime = Integer.parseInt(scan.nextLine());

    System.out.println("번호 : "+num);
    // System.out.printf("번호: %s\n", args);
    // 이스케이프 명령어 : 문자열 안에 삽입되는 명령어
    System.out.println("수업명 : "+classTitle);
    System.out.println("수업내용 : "+classContent);
    System.out.println("기간 : "+classStartDate+" ~ "+classEndDate);
    System.out.println("총수업시간 : "+totalClassTime+" 시간");
    // System.out.printf("총수업시간 : %d\n 시간", args);
    System.out.println("일수업시간 : "+dayClassTime+" 시간");

    scan.close();
    }
    }

    static 메서드와 인스턴스 메서드

    • 인스턴스의 값을 다루면 static을 붙이면 안된다, 반드시 인스턴스 메서드로 만들어줘야 한다.

배열과 흐름제어문(분기, 반복)의 사용

  • 과제1 해결

    프로젝트 폴더를 기존 것을 복사해서 만들 때

    • settings.gradle에서 rootProject.name을 변경해준다
    • 프로젝트 폴더로 이동해서 gradle eclipse를 재실행
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import java.sql.Date;
import java.util.Scanner;

public class App {
public static void main(String[] args) {
final int NUMBER = 20;
int[] no = new int[NUMBER];
// 4byte 크기 메모리 100개를 heap(인스턴스들이 저장)
// 배열은 모두 ref 변수(주소 변수)
// 메서드 에리어
// stack (메인 쓰레드 것과... 쓰레드 각각 1개씩 만들어진다)
String[] title = new String[NUMBER];
String[] contents = new String[NUMBER];
Date[] startDate = new Date[NUMBER];
Date[] endDate = new Date[NUMBER];
int[] totalHours = new int[NUMBER];
int[] dayHours = new int[NUMBER];

int len = 0;

Scanner scan = new Scanner(System.in);

for (int i = 0; i < NUMBER ; i++) {
System.out.println("번호?");
no[i] = Integer.parseInt(scan.nextLine());
System.out.println("수업명?");
title[i] = scan.nextLine();
System.out.println("수업내용?");
contents[i] = scan.nextLine();
System.out.println("시작일?");
startDate[i] = Date.valueOf(scan.nextLine());
System.out.println("종료일?");
endDate[i] = Date.valueOf(scan.nextLine());
System.out.println("총수업시간?");
totalHours[i] = Integer.parseInt(scan.nextLine());
System.out.println("일수업시간?");
dayHours[i] = Integer.parseInt(scan.nextLine());
len++;
System.out.print("계속하시겠습니까?(Y/n)");
String input = scan.nextLine();
if (input.equalsIgnoreCase("n")) {
// 대소문자 가리지 않고
break;
} else {
continue;
}
}
scan.close();

for (int j = 0; j < len ; j++) {
System.out.println(no[j]+","+title[j]+","+contents[j]+","
+startDate[j]+"~"+endDate[j]+","+totalHours[j]+","+dayHours[j]);
}
}
}