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. OrzlHB
    3강까지 본 상태에서 패키지는 클래스를 모아놓은 상자라고 볼수 있고
    클래스는 변수와 메소드를 모아놓은 디렉토리 같다.
    4강 인스턴스는 어렵다... 이해하기 어렵다... ㅠㅠ
    5강 슬슬 이해 안되는부분이 70%를 넘어가기시작하네요 ㅜㅜ
  2. 난길
    상위 클래스의 변수나 메소드를 사용해서 새로운 클래스를 만들고싶을 때 상위클래스를 상속받은 자식클래스를 만들 수 있다.
  3. anya422
    완료!
  4. 틴마
    클래스는 변수와 메소드를 묶어서 만든것이고 이런 클래스를 비슷한 종류로 모아둔것을 패키지라고 한다
  5. 난길
    서로 연관되는 변수와 메소드를 묶어서 하나로 이름붙인 것을 클래스라고 하고,
    그런 클래스들을 또 분류해서 모아둔 것을 패키지라고 한다.
  6. 레이
    21.04.07
  7. chimhyangmoo
    21.04.02
  8. 틴마
    21/04/02

    클래스라는것은 서로 연관된 변수와 메소드들을 모아서 만든 모임
    패키지들은 클래스들을 분류하기 위한것들

    상속이란 자신이 메소드를 가지고 있지 않아도 메소드를 유산받아서 사용하는것들
    만약 내가 메소드를 가지고 있지 않아도 부모나 조부모가 가지고 있다면 그것을 이어받아 사용할수있다.

    인스턴스란 간결한 작업을 할때는 일회성으로 메소드나 클래스를 사용하지만 긴 작업을 할때에는
    constructor을 통해 각각의 상태를 가진 instace 만들어서 더 효율적으로 class를 사용할 수 있게된다.
  9. jwoh
    21-03-24
    class는 서로 연관된 변수와 매소드를 모아서 이름을 붙인 것이다.
    패키지는 서로 연관된 비슷한 클래스를 모아서 이름을 붙인 것이다.
    PrintWriter p1= new PrintWriter("result1 txt") 에서
    p1 = instance , new 뒤에 부분은 constructor다.
    자식 부모 상속의 관계는
    class가 남들이 쓴 것을 쓰려고 할 때
    부모자식 관계처럼 엮이는 것이다.
    Class Object
    Class Writer extends Object
    Class PrintWriter extends Writer

    Override 겹쳐쓰기
  10. Sunho Kim
    완료(2021.03.17.수)
  11. Q2. 변수와 method를 묶어 class라고 하고, 아주 많은 class들을 분류하기 위해서 이를 묶어 package라 부릅니다.

    Q3. 이번 강의에서 math.는 클레스입니다. 이 뒤에 PI(파이), floor(내림), ceil(올림)등의 연산이 가능한데, 이러한 method??들을 묶어서 math라는 클레스라고 하는거 같습니다. 정확하게 모르겠습니다ㅠㅠ

    Q4. calss를 instance로써 활용하기를 원한다면 constructor을 가지고 있어야 합니다.
    [PrintWrithr p1 = new PrintWriter("result1.txt");] 여기서 new뒤에 붙은것들이 constructor이며 이들이 복제되어 instance가 됩니다. 그 인스턴스에 어떤 값이 올 수 있는지를 규제하기 위해 PrintWriter이라는 클레스의 이름을 적습니다.

    Q5. 상속이란 기존에 있던 method를 유산받아 활용하는 것을 이야기하는 것 같습니다. extends는 확장으로, 우리가 아래 손자(printwriter)에서 실행하는 경우 부모(writer), 조부모(object)까지 올라가 그 기능을 확인하는 것을 이야기합니다. 만약 부모, 조부모가 그 기능(method)을 가지고 있는 경우, 그 기능은 실행될 수 있습니다. override는 부모가 가지고 있는 method가 마음에 들지 않는경우 손자가 조금 변경하는 경우를 이야기합니다.
  12. 홍영민
    감사합니다
  13. onlyonehair
    점점 어려워 집니다. completed 0309
  14. 윤유상
    API: 프로그램을 만들기 위해 사용되는 조작장치들. 유저 인터페이스나 다른 프로그램에 제공한다.
    computer – OS – Java 등 언어 - (API) – 프로그램 - (유저 인터페이스) - 사용자 or (API) - 다른 프로그램

    변수, 메서드 < 클래스 < 패키지
    명령어나 클래스가 여기저기 흩어져 있으면 찾기 어렵고 충돌하는 문제가 생길 것이다. 그런 문제들을 해결하기 위해 등장한 도구가 클래스와 패키지.
  15. 깅깅
    인스턴스

    class의 method나 변수를 사용할 때 짧은 맥락의 작업일 경우,
    constructor을 사용하지 않고 바로 method나 변수를 사용한다.

    하지만 class의 method나 변수를 사용할 때 후속 작업이 있고 여러 파일을 동시에 작업해야 하는 등 긴 맥락의 작업일 경우,
    짧은 맥락에서처럼 하나의 class를 계속 사용하는게 아니라,
    constructor을 통해 각각의 상태를 가진 instace(=클래스의 복제품?)를 만들어서 더 효율적으로 class를 사용할 수 있게된다.


    상속

    class를 처음부터 끝까지 혼자서 다 만드는게 아니라, 기존의 class가 가지고 있는 변수, 메소드를 '그대로 물려받고' 거기에 자신이 원하는 메소드, 변수를 추가하여 만들 수 있다.
    상속을 통해 기존의 class의 method, 변수를 물려받아 자기것처럼 사용할 수 있다.
    class는 개별적으로 존재하지않고, 모두가 서로 상속하고 상속받는 관계에 있다..!


    궁금한게 있는데.. 비슷한 기능의 메소드와 변수들이 모여있는 class와, java파일이 compile된 class파일은 어떤 관계일까요? 같은걸까요?
  16. 이토리
    0220 완료!
  17. 규영아빠
    20210218
  18. baeroro
    20210206

    API : 자바가 제공하는 기본 라이브러리

    package : 비슷한 클래스들을 묶어놓은 보따리

    Class : 서로 연관된 변수나 매소드를 모아서 이름을 붙인 것.(directory)
    constructor가 있는 class는 인스턴스를 만드는 것이 허용된 class다(ex-printwriter)

    상속 : 기존의 메소드를 그대로 받은 뒤 자기가 원하는대로 수정하는 것(자기것으로 만들 수 있다)
  19. - 패키지: 비슷한 성격의 클래스들을 묶어서 이름을 붙인 것이다.
    - 클래스: 서로 연관된 변수나 메소드들을 묶어서 이름을 붙인 것이다. 라이브러리에 저장된 클래스를 이용한다면 남이 만든 클래스를 내 프로그램에 가져와 활용할 수 있다.
    - 변수: 변할 수 있는 값을 넣는 곳이다.
    - 메소드: 함수와 비슷한 개념으로, 기능을 할 수 있는? 것이다.
    - 상속: 미리 만들어져있는 클래스의 기능을 이용하되 새로운 기능을 추가(확장)하는 클래스를 만들었을 때, 이 클래스는 클래스를 상속받았다고 말한다.
  20. submit
    완료!!
  21. 박열정
    상속이란?

    예를들어

    Printwriter가 Write를 상속하고 Write가 Object를 상속하는 모양새를 띈다.

    Printwriter는 Object와 Writer가 가지고 있는 메소드를 물려받으며 최종적으로 확장한 기능을 추가한다.

    그리고 상속받은 자식 클래스가 부모가 가지고 있는 메소드가 마음에 들지 않아 업데이트(?)한 것을 '오버라이드'라고 정의한다.
  22. 박열정
    패키지 안에 클래스 클래스 안에 변수와 메소드
  23. 김궐궐
    완료
  24. 1000210002
    2021/01/07
  25. 꾸르를꾸
    패키지 : 관련된 클래스를 묶은 것
    변수 : 데이터에 정해주는 이름?
    메소드 : 엑셀의 함수같은거?
    클래스란 : 관련된 변수와 메소드를 묶은 것
    상속이란 : 모든 메소드를 물려받으며 이것 외에도 확장된 기능을 추가한다.
  26. 아츄
    201229
  27. artmaker
    자바가 사용하는 기본라이브러리 : API(Application Programming Interface) ex) System. xxx , Date, Math 등등등 수많은 명령어들

    자바가 기본적으로 제공하는 클래스들은 4000개 정도가된다. 그래서 4000개를 패키지(서로 연관된, 비슷한 클래스들을 모아놓은 장소)란 곳에 정리해놓는다. 찾기쉽고 충돌도 막기위해 Math 클래스는 java.lang 패키지에 들어가있다 그렇다면 클래스란 무엇인가 서로 연관된 변수, 메소드를 모아놓아 이름을 붙힌 것. ex) Math class에는 pi같은 변수들이있고 abs와같은 메소드들이있다.

    PrintWriter p1(인스턴스) = new PrintWriter("result1.txt") --> PrintWrite의 복제본을 하나 만들어 p1에 넣는데, 이때 복제본을 인스턴스라고하며 p1이라는 인스턴스는 printwriter라는 클래스의 인스턴스만 들어갈수 있으므로 앞에 printwriter를 붙여주는 것이다. 그리고 인스턴스에 들어간 값은 상태정도라고 보면된다고 하셨다.

    이클립스에 내장되어있어도 패키지를 추가해줘야하는 클래스가있고 아닌클래스가있다. 그리고 클래스들마다 사용법이다르므로 쓸때는 찾아봐야할것같다. ex) Math클래스와 PrintWriter클래스의 사용법이 완전다른것처럼.

    상속이란 쉽게말해 부모자식관계라고 생각하면된다. 부모 클래스의 상속을 받은 자식클래스는 부모클래스에 있는 메소드를 모두 사용가능하다. 자식클래스가 부모클래스가 되어 다른 클래스에게 상속해줄때 그 3번째 클래스는 당연히 1,2 번째의 모든 클래스 메소드를 사용가능하다. 그리고 오버라이드에 대해서 간략히 말하면 부모에 있는 메소드가 자식에도 있다고 가정하자. 자식클래스는 부모클래스에있는 메소드가 마음에 안들어 이를 재정의했다고하고 덮어쓰면 오버라이드했다고 말한다.
  28. J.stan
    20201222 Finished
  29. Seoil Park
    뭔말인지...쩝! 다시보기!!!
  30. 20201210
  31. 20201210
  32. 기존에 있던 클래스에 새로운 기능, 메소드를 추가하고 싶을때, 기존에 있던 클래스가 가지고 있던 메소드나 변수들을 상속받아 사용할 수 있다. 장점으로는 하나부터 열까지 새로 안 만들어도 된다는 점.

    패키지- 비슷한 쓰임새의 클래스를 모아 놓은 곳

    클래스 - 비슷한 쓰임새의 메소드와 변수들을 모아 놓은 곳.

    인스턴스- 일회성으로 끝나지 않는 클래스를 복제한 것. 앞에 new 를 붙여 복제하며 변수명 또한 가지며, 해당 클래스의 이름으로 데이터 타입을 지정해준다.
  33. 최사각
    201122
  34. Hayden Pyun
    [Java] 클래스(Class)와 인스턴스(Instance)의 이해
    2년 전 by 현수 deftkang
    Class는 변수와 함수를 가지고있는 한 구조체이다. 이것은 하나의 그냥 구조체인거지 이 Class를 사용하려면 컴퓨터상에서는 메모리에 올려야 한다. Class를 사용할수 있게 메모리에 올리면 그것은 Instance가 되는것이다.

    예를 들어 Human이라는 하나의 클래스를 정의했다 치자. Human Class에는 변수와 함수가 정의 되어있을 것이고 이것을 사용하기 위해 Human man = new Human() 을 했을 것이다. 그러면 Human은 Class이고 man은 Instance이다.

    man은 new Human() 이라는 메모리에 올려진 하나의 클래스를 담은 변수이다. 이것은 곧 Instance이다.



    출처: https://deftkang.tistory.com/73 [deftkang의 IT]
  35. 안광민
    System, Date, Math 등 자바가 기본적으로 내장하고 있는 기능들을 library라고 한다.
    우린 이를 통해 나의 프로그램을 만든다.

    Program은 시간의 순서에 따라 실행된다라는 시간이 강조된 표현.
    Application은 자바가 제공하는 기능들을 응용한다는 게 강조된 것이다.

    즉, API(Application Programming Interface)는 자바의 기능을 응용해 시간 순서에 따라 실행하는 조작방법을 일컫는다.
    따라서 우린 풍부한 프로그램을 만들기 위해 풍부한 API를 알아야 한다.

    이를 사람을 위해 만들면 UI(User Interface)라고 한다.

    쉽게 말하면, UI는 사용자가 조작하도록 만든 것이고, API는 또다른 기능이나 프로그램을 만들도록 만든 것이다. 즉, UI는 일반 사람들이, API는 프로그래머가 다른 프로그램을 만들기 위해 만든 거라고 하면 된다.

    [자바 공식 사용설명서 보는 법]
    api documentation java = 자바가 기본적으로 제공하는 library를 볼 수 있다.

    java.lang = 클래스가 속해있는 패키지의 일종.
    클래스는 굉장히 많으므로 정리정돈되어야 한다. 따라서 패키지를 통해 정리한다. 또한 똑같은 클래스가 같은 곳에 있으면 충돌하므로 패키지라는 큰 범주를 통해 정리하는 것이다.
    패키지는 비슷한 성격의 클래스를 모아놓은 것이다.
    클래스는 서로 연관된 변수와 메소드를 모아놓은 것이다.

    [인스턴스]
    일회용이 아니라면 하나의 클래스를 복제해서 인스턴스를 만드는 게 더 효율적이다.
    constructor가 있으면 인스턴스를 만들 수 있다.

    [상속]
    부모의 메소드를 그대로 물려받으면서 새로운 변수, 메소드를 추가한 것이 상속이다.
    open type hierarchy를 누르면 해당 class의 inheritance를 알 수 있다.
    부모의 기능을 override해서 자녀의 class에서 구현할 수 있다.

    완료
  36. 람쥐머신건
    싱와좌..
    대화보기
    • 싱와
      상속은 클래스를 만들때 상위 클래스들의 메소드나 이런걸 가져오는걸 말한다.

      한마디로 다 만들기 귀찮으니까 위에꺼에서 따온거야.
      모든 클래스는 object 클래스 안에 상속되는데,

      내려내려가서 엄청 상속이 되었다고 치자.
      근데 재밌는건 내가 저저~~ 위에 있는 부모님 클래스의 메소드를 갖다 쓸수도 있어.
      상속해줄때 이미 허락해준거지.

      엄마돈.. 물론 허락맡고 쓰지만 엄마카드 쓸때 그렇게 죄책감 안갖잖아?
      그런거야..

      어머니.. 죄송합니다..(주륵)

      부모 클래스까지 올라갔는데 없어? 그럼 에러나는거고. 카드로 치면 결제 안되는거지.

      근데 부모 클래스에 이미 있는걸 내가 새로만든 클래스에 또 아에 포함시킬수도 있어.
      이걸 오버라이드라고 하는데 단어는 크게 의미두지말고.. 하여간 이럴수도 있다는거 알아두자!
    • 싱와
      인스턴스 빡세게 이해해보자..어,.,? 이고잉님도 1년걸린 "그 개념"

      자.. 클래스를 만든다고 해보자.
      솔직하게 지금까지 만든 클래스는 겁나 단순한 클래스였어..
      그래서 그냥 단순한 클래스를 반복 사용해도 전혀~~~ 문제가 없는 클래스였지..

      그런데 어라? 해당 클래스에서 값이 계속 수정이 되거나,, 반복되게 바꾸어주어야할때가 오는거야.
      그러니까 클래스를 단순 반복해주려고 하니까, 창은 점점 복잡해지고.. 코드는 더러워지고.. 보기가 싫잖아?
      그리고 단순반복한 클래스에 일일히 뭘할지 다 지정해줘야해.. 미치고 환장할 노릇인거지.

      과연 이런 코드를 짜는 사람과.. 같이 일하고 싶겠니.. 절대 안그렇지..


      그래서..

      어떤 파일을 수정한다 라는것은 파일 하나만 수정하는것이 아니라 여러가지 작업들이 쭈루룩 들어오고 여러가지 작업들을 다 수정해줘야할때도 있단말이지. 이때 하나의 클래스를 돌려막기 보다는 하나의 클래스를 앞에 뉴를 붙여서 복제해서 각각의 다른 상태를 가지고 있는 인스턴스(복제품)를 만들어서 사용하는것이 훨씬더 효율적이라는거야..

      클래스를 만드는 사람들은 그 클래스가 인스턴스가 필요없이 일회용으로 쓸수있다 하면 그냥 쓰지만 긴맥락의 작업에서는 클래스를 복제한 인스턴스를 만들어서 사용자에게 제공하는것이
훨씬더 효율적이다!!
라는것을 좀 기억해줘..

      프린트 라이터는 컨스트럭터(생성자)가 있는데, 컨스트럭터가 없는 메소드는 일회용!!

      컨스트럭터가 있다는것은 컨스트럭터를 이용해서 인스턴스를 만드는것이 허용되어있다..!!!!
    • 싱와
      Class 란 무엇인가.. 사용법은 무엇인가..

      Math 클래스를 생각해보자..
      Math (수학), 수학적 역할을 하는 메소드들은 JAVA언어 가운데 수백수천의 것들이 있을것이다..
      이런 특정 주제의 메소드과 관련 변수들을 모아놓은것이 클래스다.

      대표적으로 PI라는 숫자를 우리가 매번 외우고 다닐 수는 없으니 pi 라는 메소드를 주로 사용하는데,
      이를 사용하기 위해서는 math.pi 와 같이 나타내주면 된다..
      화면에 송출하기 위해서는 system.out.printlm(Math.pi); 와 같이 나타내주자..

      다시한번 기억하자.
      패키지 안에 클래스. 클래스 안에 메소드랑 관련변수.
    • 싱와
      패키지안에 클래스. 클래스 안에 변수랑 메소드.

      관련있는 변수랑 메소드들이 너무 많은데, 이게 그룹없이 난잡하게 널부러져 있으니
      그걸 예쁘게 모은게 클래스.

      그런 비슷한 성격의 클래스들을 모은게 패키지.

      Math 클래스들을 보면

      안에 double. 이나, 등등의 메소드들이 많지.

      근데 Math class는 또 java.lang 이라는 패키지 안에 속하는거야.

      java.lang 안에는 비슷한 클래스들이 많이 존재하겠지..
    • 2020.10.11 완료
    • 준서
      1. API (Application User Interface): Application to Application
      2. UI (User Interface): Application to user
      3. Package > Class > Methods
      4. Instance: 클래스 담아서 사용
      5. Inherit(상속): 상위 클래스에서의 method는 하위 클래스에서도 사용 가능. java.lang.Object는 최상위 클래스
      6. Override: 하위 클래스에서 상속 무시, method 재정의
    • SilicaDurumi
      상속은 하위 클래스(자식)가 상위 클래스(부모)의 기능을 가져다가 쓰는 것이다.
    • 하믄랑
      package [ Class { Method } ] package=학교 class=교실 method=학생

      instance 문법의 대명사같은 역할?

      상속=세대를 거치면서 진화하여 기능을 추가시키거나 변화시키는것
    • 뚜껑
      인스턴스는 클래스를 복제한 것.
    • 루베티
      20.09.14 완료
    • d.minn
      20.09.08 완료
    • 치디우기
      200825 수강 완료~
    • 재도전
      8/09 완료
    • 남붕어
      1. 비슷한 성향의 메소드와 변수를 합치면 클래스가 되고, 비슷한 성향의 클래스를 묶으면 패키지가 됨

      2. 상속 : 상위 클래스가 하위 클래스에게 본인이 포함하고있는 변수 메소드를 물려주는 것
      상속이 좋은 점 : 하위 클래스(자식 클래스)가 상위 클래스(부모 클래스)의 변수를 다 가지고있지않아도 쓸 수 있음. 또한 하위 클래스에서 상위 클래스의 변수가 마음에 안들 경우 덮어쓰기가 가능하다 override
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기