티스토리 뷰

1. 자바

Java 기초 정리

패스트코드블로그 2020. 5. 3. 16:08

프로그래밍 발전 단계

순차적 : GOTO , Line 번호, Fortan

구조적 : 함수((Function) , main() , 포인터, 고속처리, Embeded

객체지향 : 클래스(Class), Reference , C , C# , Java

 

객체지향의 개념

재사용성 : 콤포넌트(모듈) 지향 설계

분리가능성 : S/W 모듈이 각각 분리될 수 있음

 

자바의 개요

Java : since 1995

OS : 윈도우, 리눅스

JVM : 자바 버츄얼 머신(가상머신)

     스택, 힙, 메소드 영역

OOP : 객체지향 프로그래밍

가비지 컬렉션 : 청소부

스레드 : 실 

멀티스레드 : 실 꾸러미

자바플랫폼 : API + JVM

     JSE (PC) , JEE (서버)     

GUI : 그래픽 유저 인터페이스(아이콘으로 실행하는 방식. 예: 윈도우)

class파일 : 자바의 실행파일

exe파일 : 윈도우의 실행파일

JDK : 자바 개발 도구상자

     이벤트 : 프로그램을 작동시키는 액션

     예) 클릭이벤트, 마우스드래그이벤트, 엔터이벤트

     표기법 :

     1. 파스칼 표기법 : 첫글자 대문자 + 뒷단어 첫글자 대문자

          GoodMorning => 클래스명(객체명)

     2. 카멜(낙타) 표기법 : 첫글자 소문자 + 뒷단어 첫글자 대문자

          goodMorning => 클래스명을 제외한 모든 단어

     단어와 단어사이의 시작점을 대문자로 표기하는 이유는

     "가독성" 때문이다.

     { : 시작 브레이스

     } : 엔드 브레이스

     {} : 블록

     class ...{} Hello 클래스 블록

 

 

개발순서

 

- 설계 : 객체 모델링

    - 클래스의 속성과 메소드를 문서상으로 나열 정리

    - 메소드 Stub(원형, 구조) 새성

    - 클래스 형태로 멤버변수, 멤버베소드 선언

- 정의 : 멤버 변수 정의, 메소드 기능 정의

- 구현 : 정의된 클래스를 이용해서,

    - 메모리상에 객체를 만들고,

    - 객체를 이용한 프로그래밍 작업

 

자바의 계층구조

  • 프로젝트 > 패키지 > 클래스 > 메소드 > 구문 + 변수 = 알고리즘

클래스 구조

 

- 클래스란 ? 사용자 정의 데이터 타입

- Primitive Data Type -> 구조체(기본데이터 타입의 집합체) -> 클래스

 

클래스 선언

- 하나의 클래스는 하나의 파일로 생성된다

           Foo.java => Foo.class

- *.java 파일 하나 안에는 여러개의 클래스를 넣을 수 있는데,

            이런 경우 컴파일을 하면 소스는 하나이나 컴파일의 결과로

            만들어지는 클래스는 2개 이상이 된다

- 하나의 파일 안에 클래스가 2개이상 있게 되면 반드시 public 키워드로

           진입하는 클래스를 명시해야 합니다. ex) main()

- 클래스가 2개 이상 있는 경우의 파일명은 public  이 명시된

           클래스 명으로 저장됩니다.

 

* 속성과 동작을 통해서 하나의 객체를 만들기 위한 틀

* 파스칼 표기법

* 객체를 만드는데 필요한 설계도

 

구문(statement)

자바 연산에서 3가지 종류의 구문으로 나뉜다

  • 조건문 (if, if -else, switch)
  • 반복문 (while, do -while, for)
  • 기타구문 (continue, break, return)

 

Operation Code

  • 산술 연산자 : + - * / %
  • 대입 연산자 : =
  • 복합 대입 연산자 : += -= *= /= %=
  • 형변환 연산자 : DataType
  • 증감 연산자 : ++ --
  • 비교 연산자 : >, >=, <, <=, !=, ==, instanceof
  • 비트 연산자 : &, |, ^, ~
  • 논리 연산자 : &&, ||, !
  • 삼항 연산자 : ()? A : B
  • 배열 연산자 : []
  • 메소드 연산자 : ()

메소드 개요.

  •  함수=method=메소드=function=procedure=처리
  •  메소드는 리턴값이 있어야  하는데 없으면 void기술
  •  메소드는 함수이름다음에 괄호가 있어야 합니다
  •  메소드는 필요한 경우 메소드이름(  매개인자 ) {  }

 

메소드 Syntax.

  • C언어의 함수와 동일.
  • 데이터 처리 기능을 구현.
  • 리턴값이 없는 메소드는 void 형을 지정함.
  • 메소드가 받는 인수와 데이터 타입은 메소드를 호출하는 쪽과 일치해야함.
  • Method Overloading(중복정의), Overriding(재정의) 기술로 확장.
  • 메소드가 리턴하는 값과 리턴되는 값의 데이터 타입은 일치해야 함.

메소드 호출방법

  • 참조변수.메소드이름(매개변수..);

메소드의 종류

  • static함수=정적함수, 클래스 메소드
  • static 이 붙어있는 메소드
  • 인스턴스 멤버를 사용할 수 없다.
  • 인스턴스를 사용하지 않아도 사용 가능
  • Non-static함수=일반함수, 인스턴스 메소드
  • static 이 안 붙어있다.
  • 멤변 중 모든 인스턴스에 공통 사용하는 메소드
  • 메소드 작업 수행시 인변을 필요로 하는 메소드

오버로딩의 예시

  • 메소드중복=OverLoading 매개인자갯수나 타입만 다름
  • 메소드이름동일,  괄호안의 매개인자갯수나 타입만 다름

 

기본 데이터타입

논리형 : boolean false

문자형 : char

정수형 : int 0

실수형 : double  0.0

 

comparison 

- if

- switch

 

loop 

- while

- for

 

기타

- continue

- break

- return => 메소드 진입점에서 대기

 

     Wrapper (래퍼) 클래스

     boolean => Boolean

     byte => Byte

     short => Short

     int => Integer

     long => Long

     float => Float

     double => Double

     char => String

     int a = 5;

     Integer a = 5;

 

 

변수 

 

      멤버변수에 관한 자바 튜토리얼 내용

      There are several kinds of variables:

 

      Member variables in a class—these are called fields.

      Variables in a method or block of code—these are called local variables.

      Variables in method declarations—these are called parameters.

    

      변수의 종류

      - 클래스 변수( 클래스 영역, 클래스가 메모리에 올라갈 때, 가장 먼저 생성)

      - 인스턴스 변수 ( 클래스 영역, 인스턴스 생성시 생성)

      - 로컬 변수 ( 지역변수, 메서드 영역, 변수 선언문 수행시 생성)

    

      인스턴스 변수( instance variable )

      - 1. 각 인스턴스의 개별적인 저장 공간.

      - 2. 인스턴스 생성 후, "참조변수.인스턴스 변수명" 으로 접근

      - 3. 인스턴스를 생성할 때 생성되고, 참조변수가 없을 때

                  가비지 컬렉터에 의해 자동 제거됨

    

      클래스 변수( class variable = static variable )

      - 같은 클래스의 모든 인스턴스들이 같은 값으로써 공유하는 변수

      - 인스턴스 생성없이 "클래스명.클래스변수명" 으로 접근

      - 클래스가 로딩될 때 생성되고, 프로그램이 종료될 때 소멸

  

      지역 변수( local variable )

      - 메소드 내에 선언되며, 메소드의 종료와 함께 소멸

      - 조건문, 반복문의 블록{} 내에 선언된 지역변수는 블록을 벗어나면 소멸

      - 반드시 초기화를 해 줘야 함

   

      인변, 클변, 지변 차이점

      - 인변 : 할당된 값이 가변적

      - 클변 : 항상 고정된 값

      - 지변 : 매개값 또는 초기값 할당 후 사용 가능

 

생성자

        [초기화]

        - 어떤 작업(현실: Job, 프로그램 : Process) 을 시작하기 전에

        - 준비(현실 : standby, ready)를 하게 되는데,

        - 이것을 프로그램에서는 초기화(initialize)라고 한다.

       

        [생성자]

        - 1. 값을 반환하지 않는다. 따라서 return 도 없고 void 로 표시하지도 않는다.

        - 2. 생성자의 이름은 클래스의 이름과 동일하다.

        - 3. 생성자를 명기하지 않으면, 디폴트 생성자(파라미터가 없는)가

                 컴파일러에 의해 자동 생성된다.

        - 4. 생성자가 여러 개일때, 다른 생성자를 호출할 수 있다.

                 이때 사용되는 특별한 코드가 this() 를 통하여

                 클래스내부의 다른 생성자를 호출한다.

                 단, 생성자 맨 첫줄에서 단 한번만 호출이 가능하다.

        5. 4번과 동일한 개념으로 super() 로 부모의 생성자를 호출한다.

 

배열 문법

  1. 배열의 각 요소들은 항상 참조변수 명을 통해야 한다
  2. 요소들은 index 값을 갖는데, 첫번째 요소는 0이다
  3. 배열은 하나의 객체이다(= 객체형 타입)
  4. int a = 3; ---> 기본형타입
  5. int[] arr = new int[2];
  6. 배열의 길이를 구하려면 length 라는 키워드를 이용한다

 

'1. 자바' 카테고리의 다른 글

random 문자열, 숫자 만들기  (0) 2020.05.03
형변환 & 캐스팅(casting)  (0) 2020.05.03
[자바] 제네릭( generics) 기초  (0) 2020.05.03
백준 17173: 5의 배수의 개수와 합  (0) 2020.05.03
MemberView.java  (0) 2020.05.03
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함