1. Compile
자바 확장자가 붙은 소스코드를 클래스 확장자가 붙은 실행파일로 바꾸는 것
2. Run
클래스 확장자가 붙은 파일을 실행하는 것
3. Input
실행할 때 입력값을 주는 것. 입력값에 따라서 다르게동작하는 출력값을 만드는것
API : Application Programming Interface
자바가 기본적으로 제공하는 라이브러리의 조작방법을 API라고 한다.
우리가 자바를 응용해서 프로그램을 만들기위해 사용해야하는 조작 장치 조작 장법을 API라고 한다.
어떤 API가 있고 그 조작 방법은 뭔지 알아야한다.
api document 검색
class Math 의 패키지는 java.lang 이다. 여기 속해져있다.
즉 패키지는 비슷한 성격의 클래스를 모은것이다.
클래스는 서로 연관된 변수와 매소드를 모은것이다.
예를 들어 Math라는 클래스는 PI E 라는 변수와 max min이라는 메소드를 그룹핑한것이다.
UI : User Interface
우리가 만든 프로그램을 사용자가 조작하기 위한 조작 장치를 UI라고 한다.
우리가 만든 프로그램을 부품으로 하는 또 다른 프로그램이 있다면 API를 제공해야한다.
Instance
PrintWriter 라는 클래스는 java.io 라는 패키지에 소속되어있다.
만약 PrintWriter 라는 클래스에 직접 write 메소드를 사용한다고 한다면 write 할 때 마다 어떤 파일을 수정할지에 대한 상태를 그 때그 때 마다 써야한다.
실제로 PrintWriter 는 new를 통해 instance를 만들었고 그 인스턴스는 내부적으로 각자의 상태를 가진다. p1은 result.txt라는 상태를 내장하고있고, p2는 result2.txt 라는 상태를 내장하고 있다.
하나의 클래스를 복제해서 각각의 다른 상태를 가지고 있는 인스턴스를 사용하는것이 더 효율적이다. (constructor가 있는클래스)
Inheritance
PrintWriter 는 Writer를 상속받고, Writer는 Object를 상속받는다.
Object 클래스의 메소드인 toString을 PrintWriter에서도 사용할 수 있다.
Writer라는 클래스는 write(String) 메소드가 정의되어있다.
PrintWriter에서도 write(String) 메소드가 정의되어있다.
즉 Writer에도 있는 메소드가 Write를 상속받는 PrintWriter에도 있는 상황.
덮어쓰기한것. 이런 관계를 override했다고 한다.
[string to double]
Double.parseDouble(args[0]);
[배열 만들기]
[메소드]
서로 연관된 코드를 그룹화 한 것이다.
[클래스]
클래스는 비슷한 종류의 변수와 메소드를 그룹화 한 것이다. 클래스 소속을 명시하면 여러 변수와 메소드의 성격을 바로 파악할 수 있다. 그리고 변수와 메소드를 메인에 다 적지 않고 클래스로 따로 빼놓으면 필요한 부분에 클래스명.변수/메소드 로 바로 호출해서 쓸 수 있다. 또한 print 처럼 흔한 이름의 변수와 메소드가 여러개 있을 때 클래스 소속이 다르면 한 스크립트에서 사용 가능하다.
[인스턴스]
하나의 클래스를 복제해서 서로 다른 데이터의 값과 서로 같은 메소드를 가진 복제본을 만드는것이다.
static 지워줘야함
자바는 메소드로 구조를 잡고 메소드와 변수를 그룹핑해서 클래스로 구조잡고 클래스를 복제한 인스턴스로 또다른 구조를 만드는게 자바언어의 특징이다.
주석처리 단축키 : ctrl + shift + c
'Dev > Java' 카테고리의 다른 글
[inheritance] overriding, overloading, this, super, Polymorphism, Access Modifiers, Final, Abstract (0) | 2022.03.11 |
---|---|
[JAVA 제어문] flow control (0) | 2022.03.11 |
[객체지향 프로그래밍] object oriented programming (0) | 2022.03.11 |
[method] 입출력, public, static (0) | 2022.03.11 |
[JAVA1] jdk, eclipse 설치 / 데이터 타입, 변수, casting / 입출력, arguments, parameter (0) | 2022.03.02 |