Java/Java

Java 02. 기본 용어 & 구성

shin96bc 2022. 3. 8. 13:53

(1) 객체지향 (OOP : Object Oriented Programming)

 

(2) 메인 메소드

     1) public static void main(String[] args) { }

 

(3) 클래스 (Class) : '객체'를 만드는 틀

 

(4) 객체 (Object) : 클래스를 통해 나온 구현물, 모든 것
         ex) 붕어빵

 

(5) 생성자 (Constructor) : '객체' 가 생성될 때 하는 일(행위)

(6) 메소드 (Method) : '객체'가 할 수 있는 일(행위)

(7) 속성 ( Attribute == Member == Field ) : '객체'의 특성
      다양한 객체를 표현하기 위해서 존재한다.
      ex) 앙꼬, 가격

 

(8) 변수 ( Variable ) == 변데이터 ( 변할 수 있는 데이터 )

     1) 유효범위 
          <1> 멤버(==전역)  (JVM이 초기화 해줌)
               1> 클래스(소속)
               2> 객체(소속) ( == 인스턴스(instance))

          <2> 지역  ( JVM이 초기화 안해줌 )
               1> 파라미터( == 매개 == 아규먼트 )
               2> 선언초기화 (생성자나 메소드안에 선언과 동시에 초기화한 지역변수)

     2) 메모리 
          <1> 기본형(프리미티브(primitive) == 원시데이터) : 8가지
               1> call by value
               2> 형태 : 모두 소문자
               3> 종류:
                    byte -> short -> int -> long -> float -> double 
                               char ->
                    boolean

               4> 담을 수 있는 값의 범위
                    1. byte(1) : -128(-2^7) ~ 127(2^7-1) (경우의 수 : 2^8)
                    2. short(2) : -2^15 ~ 2^15-1 (경우의 수 : 2^16)
                    3. char(2) : 0 ~ 2^16-1(경우의 수 : 2^16)
                    4. int(4) : -2^31 ~ 2^31-1 (경우의 수 : 2^32)
                    5. long(8) : -2^63 ~ 2^63-1 (경우의 수 : 2^64)
                    6. float(4) : 무한대(소수 오차발생) (경우의 수 : 2^32)
                    7. double(8) : 무한대(소수 오차발생) (경우의 수 : 2^64)
                    8. boolean(1) : false 또는 true

               5> 형 변환( Type casting )
                   1. 자동형변환( 암시적/Implicit) by JVM
                        ex) 범위 작은 Type -> 큰 Type

                   2. 강제형변환( 명시적/Explicit) by 개발자   ( 데이터 꺠질 수 있음, 데이터의 범위를 잘 알아야함 )
                        ex) 범위 큰 Type -> 작은 Type

               6> 예외 형변환
                   1. 정수형( byte, short, char, int )끼리의 연산의 결과는 int

               7> 컴퓨터 소수 연산 오차
                   1. float 오차가 double 보다 큼

               8> 디폴트 초기값 by JVM
                   1. 정수( 0, 0L ), 실수( 0.0f, 0.0 ), 불린( false )


               9> 존재이유
                   1. 실행의 효율성
                   cf) Wrapper class 8가지
                       Byte, Short, Character, Integer, Long, Float, Double, Boolean

          <2> 참조형( reference == 레퍼런스 ) : 무한
               1> call by reference
               2> 형태 : (관례상)첫문자 대문자
               3> 디폴트초기값 : null
               4> 형변환 
                    1. 자식객체는 부모타입으로 형변환 할 수 있다.

                    2. 자식객체를 부모타입으로 형변환 할 때는 부모타입이 더 큰 범위 이므로, 자동 형변환 된다.

                         ex) 자동형변환 by JVM ( 자식 -> 부모 )

                    3. 강제 형변환은 자식객체을 부모타입 으로 바꿔서 사용하다가 원래 타입을 찾을 때 사용한다.

                         ex) 강제형변환 by 개발자 ( 부모 -> 자식 )

                    4. 모든 객체는 Object의 자식 ( 묵시적 상속 )
                    5. 형제관계(남남)는 상속과 무관 ( 형변환X )


     3) 소유 
          <1> 클래스( == 정적 )
               static 붙으면 클래스 소유

          <2> 객체( == 동적 )
               static 붙지 않으면 객체 소유

     4) final
          <1> 상수( == 상데이터) ( Constant )
               1. final 붙으면 '초기'값을 못 바꿈

          <2> 변수( == 변데이터) ( Variable )

               1. 값을 바꿀 수 있음

 

(9) 클래스의 구조
     1) 패키지 선언
     2) 임포트 구문
     3) 클래스 선언 { 
          <4> 멤버변수
          <5> 생성자( Constructor )
          <6> 매소드( Method )
        }

(10) 주석 ( comment )
     1) 1라인 : 

          // 적고싶은 문장

     2) N라인 :  

          /*  
            적고싶은 문장 1
            적고싶은 문장 2
          */

     3) 문서화주석 :

          /**
            문장1
            문장2
          */

 

(11) 제어
   어떤 프로그램이 실행되고 있을 때,
   어느 한 시점의 (CPU/GPU)연산은 어떤 특정 코드부분을 실행하고 있을 것이다.
   그 코드 부분을 '제어점'이라고 하고, 그 제어점들의 집합을 '제어'라고 한다.
   즉, "프로그램의 실행 흐름(line)" 이다.

   JVM  ->  main() -> ..... main()  ->  JVM

   cf) 비유: '부메랑'

 

(12) 연산자 ( Operator )
     1) (데이터들을) 연산하게 하는 '기호' 
  
     2) 종류
          <1> 산술연산자 ex) +, -, *, /, %
          <2> 증감 ex) ++, --
          <3> 대입(할당) ex) =
          <4> 산술대입(할당) ex) +=, -=, *=, /=, %=
          <5> 비트 ex) &, |, ^, ~(not), 시프트(<<, >>, >>>)
          <6> 비교 ex) ==, !=, <, <=, >,  >=
          <7> 논리 ex) &, &&, |, ||,  
          <8> 논리대입(할당) ex) |=, &=
          <9> 조건 ex) A? B:C    ( A의 조건이 true이면 B를 취하고, false이면 C를 취해라)
          <10> instanceof  ex) 객체 instanceof 클래스

 

'Java > Java' 카테고리의 다른 글

Java 06. OOP( Object Oriented Programming) 특성  (0) 2022.03.09
Java 05. 컬렉션 ( Collection )  (0) 2022.03.09
Java 04. 배열 ( Array )  (0) 2022.03.09
Java 03. 제어문  (0) 2022.03.08
Java 01. 설치 및 세팅  (0) 2022.03.07