JAVA1

자바 문서 보는 법

수업소개

자립의 핵심기술은 공식 문서를 보는 법입니다. 공식문서를 보기 위해서는 자바에서 코드의 뼈대를 형성하는 몇가지 개념들에 대한 이해가 조금 필요합니다. 이 수업에서는 문서를 보기 위해서 필요한 약간의 개념과 그 개념을 바탕으로 문서를 보는 법을 같이 경험해봅니다.

 

 

 

강의1

 

 

 

강의2

 

 

 

강의3

소스코드

변경사항

public class ClassApp {

    public static void main(String[] args) {
		
		System.out.println(Math.PI);
		System.out.println(Math.floor(1.6));
		System.out.println(Math.ceil(1.6));

	}

}

 

 

 

강의4

소스코드

변경사항

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
public class InstanceApp {

    public static void main(String[] args) throws IOException{
		
		PrintWriter p1 = new PrintWriter("result1.txt");
		p1.write("Hello 1");
		p1.close();
		
		PrintWriter p2 = new PrintWriter("result2.txt");
		p2.write("Hello 2");
		p2.close();
		
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
	}

}

 

 

 

강의5

소스코드

변경사항

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
public class InstanceApp {

    public static void main(String[] args) throws IOException{
		
		PrintWriter p1 = new PrintWriter("result1.txt");
		p1.write("Hello 1");
		p1.close();
		
		PrintWriter p2 = new PrintWriter("result2.txt");
		p2.write("Hello 2");
		p2.close();
		System.out.println(p1.toString());
		p2.toString();
		p2.write("Hello 2");
		
		
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
//		PrintWriter.write("result1.txt", "Hello 1");	
//		PrintWriter.write("result2.txt", "Hello 2");
	}

}

 

 

 

댓글

댓글 본문
  1. Sansol Park
    학생이 겪고 있는 문제는 java.io.PrintWriter 클래스를 import 할 수 없다는 오류입니다. 이 문제는 주로 다음과 같은 이유로 발생할 수 있습니다:

    1. Java Development Kit(JDK)가 설치되지 않았거나 올바르게 설치되지 않았을 때 발생할 수 있습니다. JDK는 Java 프로그램을 실행하고 컴파일하는 데 필요한 라이브러리와 도구를 제공합니다. JDK가 올바르게 설치되어있는지 확인해 보세요.

    2. 사용하고 있는 IDE(통합개발환경)의 설정 문제일 수도 있습니다. IDE의 Java 라이브러리 경로가 올바르게 설정되어 있는지 확인해 보세요.

    3. 또는, 프로젝트의 빌드 경로가 올바르지 않을 수도 있습니다. 프로젝트의 속성을 확인하고, 필요한 라이브러리가 모두 포함되어 있는지 확인하세요.

    이러한 문제들을 확인하고 해결한 후에도 문제가 계속된다면, 더 자세한 정보를 제공해 주세요. 그러면 보다 구체적인 해결 방안을 제시할 수 있습니다.

    GPT-4 를 활용한 답변입니다.
    대화보기
    • PrintWriter 타입 오류가 계속 발생하네요 java.io.PrintWriter 를 import 할수가 없다고 뜨는데 왜그런가요??
    • 집게사장
      3. 추가적으로 인스턴스란 클래스를 토대로 복제되어 만들어진 변수로 만들어진 각각의 인스턴스들은 독립적으로 데이터를 저장하고 작동하며 서로 다른 각각의 인스턴스에게 영향을 주지 않는다.
      대화보기
      • 집게사장
        2023.11.07 수강완료
        1. 서로 연관된 변수와 매소드를 모아서(그룹핑) 이름을 붙인 것이 클래스 이러한 클래스를 또 그룹핑해서 이름을 붙인 것이 패키지
        2. 상속이란 기존 클래스의 메소드나 변수들을 그대로 받아와 거기에 추가적인 메소드들을 추가하거나 덮어쓰기로 기존 메서드를 수정해 클래스를 만드는 것이다. 이를 통해 기존 클래스의 기능을 확장시키거나 개선시킬 수 있고 보다 수월하게 새로운 클래스를 만들어 낼 수 있다.
      • 다람
        2023.08.07. 완료
      • 2023.08.04

        4,5강은 다시 들어야함
      • 패키지 => 클래스를 그룹핑 한 것이다.
        클래스=> 변수,메소드를 그룹핑 한 것이다.
      • 솜사탕
        2023.08.02 완료
      • GodUser
        클래스는 변수와 그 변수를 활용한 메소드를 묶은 하나의 집단이라 볼 수 있으며 패키지는 클래스들을 잘 정리해서 모아놓은 디렉토리의 개념이다.

        인스턴스는 클래스의 복제본의 의미로 볼 수 있으며 클래스가 하는 역할에 따라 인스턴스를 이용하는 경우가 있고 인스턴스가 필요 없는 경우가 있다 예를들어 Math는 인스턴스가 필요없지만 PrintWriter는 인스턴스가 필요하다.

        상속은 비슷한 기능들이 있고 거기에서 더 확장하고 싶을 때 사용하는 기능이다.

        예를 들어 자동차라는 클래스가 있다면 모든 자동차는 전진 후진 기어변경 등의 기능이 있다. 그러나 자동차 클래스로는 버스를 표현할 수 없다. 버스라는 클래스를 만들었지만 자동차의 기능을 모두 갖고 있기에 전진 후진 기어변경등의 기능을 새롭게 만들지 않고 자동차라는 클래스를 상속받아 버스만의 특징적인 기능을 추가하였다
      • subray
        강의4부터 다시 듣기
      • 화려하게간다
        Java에서 모든 객체는 Object 클래스에서 상속받습니다. Object 클래스는 Java에서 가장 기본적인 클래스 중 하나이며, 모든 클래스는 이 클래스를 상속받거나 간접적으로 상속받습니다.

        Object 클래스는 Java의 기본 메서드와 필드를 제공하며, 다음과 같은 메서드를 포함합니다.

        equals(): 객체가 같은지를 비교합니다.
        hashCode(): 객체의 해시 코드를 반환합니다.
        toString(): 객체를 문자열로 표시합니다.
        getClass(): 객체의 클래스 정보를 반환합니다.
        notify(): 스레드를 깨웁니다.
        notifyAll(): 대기 중인 모든 스레드를 깨웁니다.
        wait(): 다른 스레드가 객체를 사용할 때까지 기다립니다.
        Object 클래스의 이러한 메서드는 대부분의 Java 클래스에서 사용됩니다. 예를 들어, equals() 메서드는 두 객체가 같은지 비교하며, hashCode() 메서드는 HashMap, HashSet 등과 같은 컬렉션에서 객체를 저장 및 검색하는 데 사용됩니다.

        또한, Object 클래스는 finalize() 메서드를 제공하여 객체가 가비지 컬렉션으로 제거되기 전에 실행되는 코드를 제공합니다. 이 메서드는 일반적으로 사용되지 않으며, finalize() 메서드를 사용하는 것은 피하는 것이 좋습니다.
      • 화려하게간다
        자바에서 인스턴스(Instance)는 클래스를 기반으로 생성된 개별 객체를 의미합니다. 클래스는 일종의 설계도이며, 인스턴스는 이 설계도를 바탕으로 생성된 실제 객체입니다.

        인스턴스는 클래스의 멤버 변수와 메서드를 사용할 수 있으며, 이들은 인스턴스 변수와 인스턴스 메서드로 불립니다. 인스턴스 변수는 개별 객체 내에서 유지되는 변수이며, 인스턴스 메서드는 해당 객체에서만 사용될 수 있는 메서드입니다.

        인스턴스는 new 키워드를 사용하여 생성됩니다. new 키워드를 사용하여 생성된 인스턴스는 메모리에서 독립적으로 할당되며, 각각의 인스턴스는 자신만의 고유한 상태를 유지합니다. 예를 들어, Person 클래스를 생성하고, 이를 기반으로 john과 jane이라는 두 인스턴스를 생성한다면, john과 jane은 각각 다른 객체이며, 서로의 상태에 영향을 미치지 않습니다.

        인스턴스는 클래스의 멤버 변수에 대한 초기값을 설정할 수 있습니다. 이를 위해 생성자(Constructor)를 사용합니다. 생성자는 인스턴스가 생성될 때 호출되며, 멤버 변수의 초기값을 설정할 수 있습니다.

        인스턴스는 자바에서 객체 지향 프로그래밍을 구현하는 데 중요한 개념 중 하나입니다. 인스턴스는 클래스를 바탕으로 생성되며, 개별 객체의 특성과 상태를 나타냅니다. 인스턴스를 사용하여 여러 개의 객체를 생성하고, 각각의 객체를 다르게 조작할 수 있습니다.
      • 당당
        2023.04.09
      • 밍구밍구
        java 문서 읽기
      • 왕날편
        부모 Class를 상속 받은 자식 Class는 그 부모 Class안의 method와 field(변수)들을 사용할 수 있다.

        이따금 자식 Class가 부모 Class의 method를 override(덮어쓰다)하여 이름이 같은 method를 가질 수 있는데, 그 method는 자식 Class만의 method라고 볼 수 있다.
      • woshqqq
        매소드&변수(필드)는 클래스 안에 있고 그 클래스가 자녀 클래스가 있으면 상속(매소드,변수)이 된다. 자녀 클래스는 부모 클래스에 있는 매소드와 변수를 사용할 수 있다.
      • 개구리
        패키지는 클래스를 묶는 것이고
        클래스는 변수와 메소드를 묶는 것이다.
        상위 클래스를 기반으로 만들어진 하위 클래스는 상위 클래스로부터 상속을 받고 상위 클래스에 있는 메소드를 사용할 수 있다. 혹은 완전히 덮어쓰는 것도 가능하다.
      • 비전공자의반란
        23-01-11 완
      • didit
        23/01/08
      • 자바뿌시기
        22/12/31
      • Min Jupiter
        22.12.08
      • 화난 흰둥이
        221130
      • forrest
        2022-11-04
      • 서우
        221020
      • 꾸준히가답이다
        상속이란 무엇인가
        -> 부모와 자녀와 같은 관계로서, 자녀에 해당하는 클래스는 부모 클래스의 메소드를 상속 받을 수 있다.
        -> 그리함으로서, 자녀 클래스에서 해당하는 메소드가 없을 경우, 부모 클래스의 메소드를 상속받아 사용할 수있다
      • 보통사람 박코딩
        이고잉님이 인스턴스 이해하는데 1년 걸렸다는 말 한마디에 힘을 얻고 갑니다
        할수있다
      • 자바자바
        상속이란 상위 클래스의 변수와 메소드를 하위 클래스에 상속시켜준다 즉 하위클래스가 상위 클래스의 변수와 메소드를 활용하게 허용해준다.
      • 자바자바
        패키지: 비슷한 유형의 클래스를 모아 이름 붙인 것
        클래스: 비슷한 유형의 변수와 메소드를 모아서 이름 붙인 것
        변수: 값을 넣기 좋게 이름 붙인 것
        메소드: 원하는 값을 출력하기 위해 사용하는 수식
      • 후토마끼
        22.10.07
      • 코딩드림
        22.10.03
      • 가능해
        22.09.14
      • 일억개
        가자아악아가가강가!!!!!!!!!!!!!!!
      • economin
        수강완료
      • happybeom
        7.14
      • 강희정
        api = 다른프로그램을 사용하기위한 부품
        ui = 사람이 사용하기위한 인터페이스
        class = 변수와 메서드
        pakage = class의 더 큰 단위
        상속 = 다른클래스에 있는 변수 또는 메서드를 물려받아 사용하는 것
      • api (application programming interface) : 다른 프로그램에서 부품으로 사용됨
        ui (user interface) : 사람에게 사용됨

        package패키지: 비슷한 클래스들의 집합
        class클래스: 연관된 변수들, 메소드들의 집합

        인스턴스: api중에서 생성자(constructor)를 가지고있는 클래스 앞에 new를 붙여 복제한것
        +각각의 인스턴스를 따로 활용하기위해서.

        상속: 기존의 존재하던 클래스를 물려받는것 , 상속받은 클래스의 변수,메소드를 활용할수있다
      • Osign
        22.07.02 시청 완료
      • 은평구핵주먹곽두팔
        22.06.29 완
        Object는 모든 class들의 상위임
        Writer다음에는 여러가지 class들이 있는데 예를들어 PrintWriter 같은 것이 있다
      • muaa
        22.06.23 완

        API = 프로그래밍 장치들의 조작 방법, 결과물이 부품으로 사용
        UI = 결과물이 사람에게 사용

        클래스 = 연관된 변수와 메소드의 집합(디렉토리)
        패키지 = 연관된 클래스의 집합(클래스의 상위 디렉토리)

        인스턴스 = 일회용인 클래스를 변수처럼 지정해 여러 번 사용(편의성, 가독성)

        상속 = 파생 클래스, 자녀 클래스는 부모 클래스의 메소드 등을 사용할 수 있음. 단, 범위는 역순
      • 디카페인
        220620 완
      • 육도
        2022.05.01 완료
      • gutenmorgen
        클래스는 연관관계가 있는 variable 과 method로 구성되어 있고, 이러한 클래스들이 모여서 패키지를 구성한다.

        Inheirtance 상속은 나무 잔가지처럼 확장된 클래스들을 의미한다. 모든 클래스들은 오브젝트 클래스를 상속받고, 자식 클래스들은 부모클래스들의 기능을 가져다 쓸 수 있음.
      • 꿀벌
        class : 서로 연관된 변수와 메소드를 모아서 이름을 붙인것

        class를 사용할 때
        쓰고자 하는 class가 instance(변수를 설정할 수 있음)로써 작용할 경우, constructer(제작도구)를 가지고 있으며 new를 붙여서 instance로 대입해 간편하게 사용할 수 있다.
        이때 어떤 값이 올지 규제하기 위해서 좌변에 class의 이름을 기입한다.

        p2.write("Hello 2"); 의 경우 write는 printwrite에서 가져온다.
        >> PRINTWRITE의 write가 WRITE의 write를 덮어쓰게 된다.
      • 윤원
        API(Application Programming Interface) :
        자바가 기본적으로 제공하는 부품들의 조작 방법

        프로그램이란 시간의 순서에 따라 실행된다는 말
        User Interface : 사용자가 우리가 만든 프로그램을 조작하기 위해서
        사용하는 조작 장치라는 뜻

        API Documenttation 자바의 공식사용 설명서

        class란 서로 연관된 변수와 메소드를 모아서 이름을 붙인것
        package란 여러 클래스들을 그룹화한것

        ex) E, PI, ABS, MAX, MIN 등 여러 메소드 들을 그룹핑 한것들을 Math라는 클래스이다
      • MUK_
        220208 완료
      • 열정jk
        220206 감사합니다
      • KeiJx2
        2022/02/04
      • 나연
        2022년 2월 1일 (화) 완료

        API (Application Programming Interface): 자바가 기본적으로 제공하는 부품들의 조작 방법
        UI (User Interface)

        API documentation

        `java.lang`: `Math` 클래스가 소속되어 있는 패키지
        - 패키지: 서로 연관된 비슷한 성격의 클래스를 모아서 이름을 붙인 것
        - 클래스: 서로 연관된 변수와 메소드를 모아서 이름을 붙인 것

        예외 상황

        클래스 작업 일회용 x --> 인스턴스 사용
        - 생성자(Constructor)가 없는 클래스 --> 일회용이라고 일단 생각

        class PrintWriter 문서
        java.lang.Object // Writer의 부모
        java.io.Writer // Object의 자식, PrintWriter의 부모
        java.io.PrintWriter // Writer의 자식

        자바에서는 변수를 필드라고 함

        ```java
        class Writer extends Object // Object를 확장해서 Writer 클래스 생성
        ```

        Override (덮어쓰기)
      • 카멜리안_최유리
        20220128 완료
        1. 인스턴스 : 하나의 파일에 대해서만 후속작업을 하는 게 아니라 여러 파일에 대해 해야하는 경우가 많음. new를 이용해 복제해서 인스턴스를 만들어 사용하는 것이 효율적!
        PrintWriter p1 = new PrintWriter("result1.txt");
        2. 상속 : 이미 만들어져있는 클래스패키지의 기능들을 사용할 수 있음
        3. 클래스 : 서로 연관된 변수와 메소들을 만들어 이름붙인 것
        4. 패키지 : 서로 연관된 클래스들을 묶어 이름 붙인 것
      • BrightenTheWorld
        class는 프로그램이라고 생각!
        java.lang은 math라는 class가 속한 package임
        package란 서로 연관된 비슷한 성격의 class들을 모아서 이름을 붙인 것
        class는 서로 연관된 변수와 method들을 모아서 이름을 붙인 것이라고 생각.

        실습활동에서 Import java.lang.Math; package를 Import 하지 않아도 코드를 쓸 수 있는 이유:
        자바에 기본으로 탑재된 라이브러리 또는 API중 Import를 따로 하지 않아도 코드를 쓸 수 있는 package가 있다.
        ex) java.lang 그치만 아닌것도 있다. ex) java.io

        미래에 내가 package를 직접 만들게 될 경우 Import를 통해 해당 파일에 사용된 코드의 출처가 어디인지 명시적으로 표현해주는것이 중요함. 생략되어있다면 오류가 나거나, 다른사람이 보기에 불편함이 있을 수 있음.
        객체지향 프로그래밍을 할 때에는 나 뿐만아니라 다른 사람도 보기 편하게 구성할 필요가 있음.

        instance의 개념:
        System.out.println(Math.PI);
        System.out.println(Math.floor(1.6));
        같이 짧은 맥락의 작업들은 위와같은 방법으로 하는 것이 빠르겠지만
        파일을 수정한다는것은 파일하나만 수정하는것이 아니라 파일에 대한 여러가지 작업들이 후속으로 생기고 동시에 여러개의 파일을 작업해야 할 수도 있다!
        이런 경우에는 하나의 클래스를 사용하기보다는 new를 이용해서 복제하여 각각의 다른 상태인 instance를 만들어서 사용하는것이 더 효율적일 수 있다.

        Import java.io.PrintWriter
        PrintWriter p1 = new PrintWriter("result1.txt"); ---> p1이라는 변수에 값을 제한하기 위해서 Class의 이름인 PrintWriter를 적어서 제한
        p1.writer("Hello1");
        p1.close();

        constructor(생성자)가 있는 package의 경우에는 새로운 instance를 만드는것이 허용된 package이다.
        constructor(생성자)가 없는 경우는 1회용이다. 라고 일단 생각

        자바의 모든 Class들은 Object Class를 상속받는다.
        Object Class를 Extends(확장)해서 Writer Class를 만든(상속한)것 = Writer Class는 Object Class를 상속받음
        PrintWriter Class 는 Writer Class를 상속받은것
        더 광범위할수록 부모, 더 세분화될수록 자식 (부모의 Method를 그대로 상속받기도 함 이를 override라고 함)
        프로그램은 자식->부모 순으로 Method를 찾아서 쓰게 된다.

        변수 variables, field
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기