제2주 예습, 실험 및 과제: Java 기본 문법 2, 객체 지향 기초

제2주 예습, 실험 및 과제: Java 기본 문법 2, 객체 지향 기초

목차- 0. 과제 완료 안내

    1. 예습
  • 1.1 학습 목표
  • 1.2 예습 과제
  • 1.3 수업 전 질문 목록
    1. 실험
    1. 수업 후 과제
  • 3.1 온라인 학습 플랫폼
  • 3.2 PTA 프로그래밍 (중요)
  • 3.3 클래스룸 (사례 1-초기 접촉)
  • 확장 자료
  1. 과제 완료 안내

  1. 본 예습의 "1.3 수업 전 질문 목록"은 수업 전에 완료하시고, 수업 관련 문제에 대해 토론할 예정입니다. Markdown 형식의 블로그 링크를 제출하여 확인할 수 있으며, 우수한 완성도를 보인 학생은 가점을 받을 수 있습니다.

  2. 수업 후 과제: 중요 클래스룸;

  3. 예습


간단한 예습 절차: 먼저 예습 자료를 보고, 안에 있는 문제를 꼼꼼히 풀어보세요. 필요에 따라 동영상을 시청합니다. 마지막으로 수업 전 질문 목록을 완료해보세요.

1.1 학습 목표

  1. 참조 타입 및 일반 클래스: 배열, 배열 리스트(ArrayList), 메소드 및 참조 타입을 메소드 매개변수로 사용하는 방법을 익힙니다.
  2. 클래스, 객체, 메소드, 속성 관련 기본 개념과 객체 초기화를 익힙니다.
  3. IDE를 사용하여 객체를 빠르게 생성할 수 있습니다.

1.2 예습 과제

  1. 예습 자료를 학습합니다.
  2. 온라인 학습 플랫폼의
  • "제2장 Java 기본 문법" 장의: 메소드, 배열, 참조 데이터 타입.
  • "제3장 객체 지향 기초" 기본 개념, 캡슐화 및 모듈화, 객체 초기화.

1.3 수업 전 질문 목록

  1. 메소드 관련 문제
public class Main {
    static void modifyString(String text) {
        text = "changed";
    }
    static void modifyArray(String[] stringArray) {
        for (int i = 0; i < stringArray.length; i++) {
            stringArray[i] = stringArray[i] + "_" + i;
        }
    }

    public static void main(String[] args) {    
        String original = "hello";
        modifyString(original);
        System.out.println(original);
        modifyArray(args);
        System.out.println(Arrays.toString(args));
    }
}

위 코드에 대해: 1.1 modifyString과 modifyArray의 기능은 각각 무엇인가요? 1.2 main 메소드의 original 변수가 변경되었나요? 그 이유는? 1.3 main 메소드의 args 배열 내용이 변경되었나요? 그 이유는? 1.4 args 배열의 값은 어디서 오는가요? 어떻게 값을 할당할 수 있나요?

  1. 배열 관련 문제 다음 프로그램에 대해
int[] numbers = new int[3];
numbers[0] = 1; numbers[1] = 1;
int[] reference = numbers;
numbers[0] = 2;
System.out.println(Arrays.toString(numbers));
System.out.println(Arrays.toString(reference));

2.1 이 프로그램의 출력 결과는 무엇인가요? 그 이유는?

String[] textArray = {"apple", "banana", "cherry"};
textArray[1] = "orange";
System.out.println(Arrays.toString(textArray));

2.2 String은 불변 클래스인데 왜 textArray[1]에 "orange"를 할당할 수 있나요?

  1. int[4][]를 사용하여 2차원 배열을 정의하고, 두 번째 차원의 길이는 얼마나 되나요? 코드를 완성하고, foreach 또는 다른 반복 방법을 사용하여 이 2차원 배열을 순회해보세요.

  2. 클래스와 객체의 차이점은 무엇인가요? Math 클래스는 객체가 있나요? String 클래스에는 어떤 private 속성과 public 메소드가 있나요? 왜 이렇게 설계되었는가요(두 가지 예로 설명해보세요)?

  3. 클래스 속성을 public으로 설정하면 다른 클래스에서 쉽게 접근할 수 있지만, 왜 Java에서는 보통 setter/getter 패턴을 사용하여 객체 속성에 접근하나요? 이것은 캡슐화와 어떤 관계가 있나요?

  4. 객체 속성은 언제 초기화할 수 있나요? 초기화하는 방법에는 어떤 것들이 있나요?

  5. 심화(선택 사항): 범위(scope)를 사용하여 캡슐화를 설명해보세요.

  6. 실험


제2차 실험 개요(Java 기본 문법 및 클래스 라이브러리). 가능한 실험 프로젝트를 미리 시도해보세요.

  1. 수업 후 과제

3.1 온라인 학습 플랫폼

  1. 동영상: a) 강의 내용과 슈퍌 플랫폼을 복습하며 제2장과 제3장 내용을 다시 보세요. "Scanner 클래스 사용법" 동영상이 특히 중요하며, 이 부분은 실험 내용과 관련이 있습니다.
  2. 토론 3.4 연습: Circle 클래스를 작성하고 코드를 공유해보세요 3.4 생각: 객체 초기화
  3. 장절 퀴즈 시간 제한: 장절 퀴즈 1(서론). 설명: 평소 성적에 반영되므로 신중하게 시작하세요.

3.2 PTA 프로그래밍 (중요)

완료: 문제집 Java-02-Java 기본 문법 시도해보기: 문제집 Java-03-객체 지향 1의 "3.1 생성자와 toString", "3.2 생성자와 초기화 블록".

3.3 클래스룸 (사례 1-초기 접촉)

프로젝트 사례 과제 1: 실행, 이해 및 학생 관리 시스템 재작성. 사례 기초 분석 보고서 1(기능 설명, 기본 문법 설명, 클래스 기능 설명)를 작성하세요. Markdown 형식으로 이 보고서를 작성해주세요.

자세한 내용은 클래스룸에 게시된 과제를 참조하세요.

확장 자료

참고 자료:

1. [Java 실험 교육 계획서](https://www.cnblogs.com/zhrb/category/1537297.html)
2. [PTA에 Java 프로그램 제출하는 몇 가지 팁](http://www.cnblogs.com/zhrb/p/6347738.html)
3. [Java9 관련 자료(JShell 간단 튜토리얼 등)](https://www.cnblogs.com/zhrb/p/7596171.html)
4. [IntelliJ IDEA 기본 사용법](https://www.cnblogs.com/zhrb/p/7446177.html)

태그: java 객체지향프로그래밍 기본문법 배열 클래스

6월 4일 02:27에 게시됨