1. 변수와 메소드

  • 인스턴스변수: 인스턴스의 변수, 인스턴스(객체)에 대해 아는 것 (상태, 명사)
  • 메소드: 객체가 하는 것 (행동, 동사)
  • 객체 = 실체화된 인스턴스 변수 + 실체화된 메소드


1.1 예제

Dog라는 클래스를 만들경우,

  • 인스턴스변수: size, name, color 등...
  • 메소드: bark(), eat() 등...

 


2. 클래스와 객체

클래스는 객체가 아니다!!!!!

  • 클래스: 객체를 만들기 위한 용도
  • 객체: 클래스에 의해 실체화 된 것

 

2.1 예제

 클래스

객체 

class Movie{

   String title;

   String genre;

   int rating;

 

   void palyIt(){

       System.out.println("영화를 상영합니다.");

   }

}

Movie one = new Movie();

one. title = "주식과 함께 사라지다";

one.genre = "비극";

on.rating = -1;

 

Movie two =  new Movid();

two.title = "바이트 클럽"

two.genre = "기분이 좋아지는 비극"

two.rating = 127;

 

 아직 실질 적으로 존재하지 않는 상태

 클래스를 생성하여 값을 넣음으로써 실제로 존재하는 상태

객체란 Movie라는 클래스에 의해 생성된 one과 two를 의미한다.

 

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

[JAVA] 객체  (0) 2016.12.31
[JAVA] JVM이 메모리를 관리하는 방법 - garbage collection(가비지 컬렉션)  (0) 2016.12.31
[JAVA] 기초03  (0) 2016.12.31
[JAVA] 기초 - 주석  (0) 2016.12.31
[JAVA] 기초 - 자료형(변수)  (0) 2016.12.31

1. class

1.1 규칙

  • java코드는 반드시 class 안에 작성하여야 한다.
  • Eclipse는 소스파일을 저장하는 즉시 자동으로 컴파일 한다.(Auto complete 선택되어 있을경우만)
  • 컴파일 된 바이트코드는 프로젝트 폴더/bin 디렉토리에 놓인다.
  • public으로 공개된 클래스는 자바 소스 파일도 반드시 클래스 이름이여야 한다.                                                                                         (단,파일명이 public이 아니면 파일명이 클래스이름과 달라도 error가 나지 않는다. )
  • 바이트코드는 자바 컴파일러에 의해 클래스별로 생성한다.
  • 유지보수를 좋게 하기 위해 가능한 각 클래스는 별도의 소스파일로 만들어라.

 

<예제 Test02.java>

 public class Test02 {

}

//error!! => public일 경우, 반드시 파일이름과 클래스 이름을 같게 하여야 한다.

//하나의 java 파일에는 한개의 public class만이 가능하다.

public class test03 {

 

}

//에러는 나지 않지만, 유지보수를 위해 가능한 각 클래스는 별도의 소스파일로 만든다.

class test03 {

}

 

1.2 cmd에서 실행하기

1) 파일이 위치하는 해당 경로로 이동


2) "java -classpath [클래스파일이 있는 경로] [클래스명]" 으로 실행 확인

(-classpath 대신 -cp도 가능)


 

2. package

  • class의 집합(class 파일을 좀 더 조직적으로 관리하기 위한 디렉토리)
  • package는 폴더를 의미한다.(bin안에 package이름으로 폴더 생성된것 확인할 수 있음)
  • package의 이름은 일반적으로 도메인 주소를 거꾸로 쓴다(중복되면 안되며, 쉽게 관리 하기 위해서)

 

<package 이름 예제>

  • 아래와 같이 폴더 안에 폴더가 생성되므로 디렉토리를 생성 할 때 상위그룹을 먼저 생성하는 것이 좋다.

 net/bitacademy/java63
 net/bitacademy/java64
 net/daum/dev1
 net/daum/dev2

 

1. 주석이란?

프로그램의 설명을 위해 사용되는 코드로 컴파일러는 바이트코드로 바꾸지 않고 무시한다.

 

2. 주석의 종류

2.1 한줄주석

  • 한줄을 주석으로 하고 싶을 때 쓰는 주석이다.

 // 한 줄 주석입니다.

 

 2.2 여러줄 주석

  • 여러줄을 주석으로 하고 싶을 때 쓰는 주석이다.

 /*

 여

 러

 줄

 주

 석

*/

 

 2.3 자바 문서 주석

  • javadoc 개발도구를 통해서 HTML 문서를 만들 때 사용하는 주석
  • javadoc는 소스파일에서 자바 문서 주석을 추출하여 HTML을 생성한다.
  • "@키워드" 를 통해 HTML 문서에 특별한 문장을 생성할 수 있다.
  • 바이트 코드에는 포함되지 않는다.

 /**

 자바 문서 주석입니다.

*/

 

 2.4 @(에노테이션)

  • 컴파일러나 JVM이 사용하는 아주 특별한 주석
  • @키워드 (변수=값, 변수=값, ...)
  •  SOURCE  => 컴파일 후 버려짐. 클래스 파일에 포함하지 않는다.
     CLASS     => 컴파일 파일에 포함 됨. 단, JVM이 사용할 수 없다.
     RUNTIME => 클래스 파일에 포함됨. JVM이 꺼낼 수 있다. 즉, 실행 중에 클래스 파일에 있는 주석을 꺼내 볼 수 있다.

 /**

  @author Me

*/

 

2.5 이클립스에서 주석 단축키

  • Ctrl + / :  블럭된 부분 전체 주석/주석해제
  • Ctrl + Shift + C : 마우스 커서가 있는 한 줄 주석/주석해제
  • Ctrl + Alt +j : method 이름 위에 커서를 두고 해당 주석 쓸경우 이클립스에서 정의되어 있는 자바 문서 주석 생성가능


3. 첨부

주석.java


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

[JAVA] "인스턴스변수VS 메소드"와 "클래스 VS 객체"  (0) 2016.12.31
[JAVA] 기초03  (0) 2016.12.31
[JAVA] 기초 - 자료형(변수)  (0) 2016.12.31
[JAVA] 기초02  (0) 2016.12.31
[JAVA] 기초01 - JAVA란?  (0) 2016.12.31

1. 자료형(변수)

데이터를 저장할 수 있는 메모리

ex) 스타*스에서 커피를 주문한다면 스몰(small), 쇼트(short), 톨(tall), 그란데(grande)이 크기가 있다.

     카페에서 자신의 원하는 컵의 크기를 선택하는 것처럼 변수(컵)도 데이터(음료)를 담는 그릇이다. 

     ​때문에 변수(컵)은 여러가지 크기가 존재한다.

 

1.1 변수의 종류

  • (원시)변수: 원시변수에는 값이 저장된다. ex) int i = 7; => i는 111(2)의 값을 저장 함.
  • 인스턴스 변수: 객체(인스턴스) 내부에 있는 변수
  • 레퍼런스변수(레퍼런스) : C언어에서의 포인터, 객체에 접근하는 주소를 갖고 있음(값이 X)                                                  

     ex) Dog myDog = new Dog(); => myDog의 객체의 접근하는 주소를 갖고있다. 


2. 기본 자료형 (총 8개)

2.1. 리터럴

소스 코드의 고정 된 값을 대표하는 용어

ex) 진하게 표시된 것이 리터럴

      int i = 100;

      float f = 10f;

      char ch = "Oh!";

 *리터럴과 상수(Constant)는 다름!!!

   - 리터럴: 변수 및 상수에 저장되는 값 자체                     ex) int i = 100;

  - 상수   : 값을 초기화 한 이후에 값 변경이 불가능한 상수  ex) public static final int i = 100; 


2.2 종류 

 

  1 byte

 byte

  4 byte

  8 byte 

 논리형

  boolean

 

 

 

 문자형

 

  char

 

 

 정수형

  byte

 short 

                int                 

 long

 실수형

 

 

 float

               double            

 * 회색 부분은 default(기본) 자료형

 

2.3 변수선언

[public/protected/private] [static] [final] 변수타입 변수명;

 * [ ]안의 것은 때에 따라 생략가능


1) 변수이름 짓는 법

  •  변수는 알파벳, 숫자, _, $ , 문자(한, 중, 일 국가 문자 다 가능)
  •  단, 변수의 첫 문자는 숫자가 올 수 없다.
  •  가능한 $는 변수이름으로 사용하지 말것(보통 $는 자동화 도구에서 값을 대치하는 특수기호로 많이 사용 ex)jQuery)
  •  패키지 멤버 클래스는 영어 외에 문자를 사용하지 말아라.(운영체제에서 인지X), 내부 클래스는 한글 사용가능                                                  but 영어를 쓰는 것이 현명
  •  대소문자를 구분한다.
  •  변수 이름 짓는 규칙: camel표기법 ex) firstName, createDate
  •  널리 알려진 약어의 경우는 변수명으로 사용해도 되지만, 가능한 약어 사용을 자제하라 => source code의 가독성을 위해
  •  변수는 소문자로 시작한다.
  •  메서드명은 동사로 시작, 일을 시키는 식으로 이름을 지어라!


2) 사용 예

  • boolean i = true;  //true or false 밖에 사용 못함.
  • char i = 'A';(작은 따움표로 감싸 주어야 함) // 하나의 문자만 저장 가능
  • byte i = 1;
  • short i =1;
  • int = i =1;
  • long i =1;
  • float i = 1.2f;("f"를 꼭!!!! 써야함! => 자바에서는 소수점이 들어가 있는 것은 기본적으로 double로 간주 하기때문에)

         * "1.2f"가 의미하는 것은?

        커피를 주문할때에 "아메리카노 small사이즈, 시럽추가, 샷추가" 라고 주문을 한다고 해보자

        그렇다면, 커피를 주문받는 사람은 위와같이 모든 글자를 다쓰지 않고, "사이즈:s, 시럽O,  샷O"과 같이 간결하게 나타낼 것이다.

        커피에서의         "s"가 의미하는 것이  small의 크기를 갖고있는 을    의미하듯이,

        프로그래밍에서의 "f"가 의미하는 것은  flaot의  크기를 갖고있는 변수를 의미한다.  

 3) Error

 byte test1 = 128; //error 내용: type mismatch:cannot convert from int to byte (type이 잘못매치되었다: int는 byte로 변환할 수 없다.)

  • 128은 1바이트 이상이므로 int형이 되어야 한다!! => 1byte인 byte에 넣을 수 없다.
  • 따라서, 변수의 크기와 할당 내용의 크기를 맞춰서 변수 선언을 하여라!!

 

 

3. 참조 자료형 

  객체의 주소를 저장, 변수의 타입이 클래스의 이름을 사용

 

  2.1 종류

  • String : 문자열 사용 시
  • 사용자 지정 클래스

 

  2.2 사용방법

    String str = "Hello, World!"; (변수타입 첫글자 => 대문자, 큰따움표로 감싸줌)

 


4. 기본 자료형 VS 참조 자료형


 

 기본 자료형

참조 자료형 

 저장 하는 값

 실제 값

 객체의 주소

크기제한

 有

 無

 변수타입 첫 글자

 소문자

대문자 (클래스 이므로)

 사용예시

 int a = 100;

 Date today = new Date();


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

[JAVA] "인스턴스변수VS 메소드"와 "클래스 VS 객체"  (0) 2016.12.31
[JAVA] 기초03  (0) 2016.12.31
[JAVA] 기초 - 주석  (0) 2016.12.31
[JAVA] 기초02  (0) 2016.12.31
[JAVA] 기초01 - JAVA란?  (0) 2016.12.31

1. JAVA Program

 JAVA Program = 사용자 작성 클래스 + Java API에 속한 클래스

                         (main함수 존재 O)      (main함수 존재 X)


1.1 Java Program Basic Syntax

  •  대소문자 구별한다.
  • class 이름은 대문자로 시작한다.
  • Method 이름은 소문자로 시작한다.
  • 프로그램 파일 이름은 클래스 이름과 반드시 매치 시켜야 한다.
  • 'public static void main(String args[])'부분이 반드시 main함수 부분에 들어가야 한다.



2. Class와 Package와 .jar파일

Class의 집합이 Package, Package의 집합이 .jar파일



3. Identifiers(식별자)

사용자가 만드는 모든 이름      ex) class 이름, 변수 이름 등등

3.1 식별자 만들 때 유의사항 

  • 모든 신별자는 알파벳이나 $이나 _로 시작한다
  • 예약어(Java Keywords)는 쓸 수 없다
  • 대소문자를 구별한다


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

[JAVA] "인스턴스변수VS 메소드"와 "클래스 VS 객체"  (0) 2016.12.31
[JAVA] 기초03  (0) 2016.12.31
[JAVA] 기초 - 주석  (0) 2016.12.31
[JAVA] 기초 - 자료형(변수)  (0) 2016.12.31
[JAVA] 기초01 - JAVA란?  (0) 2016.12.31

1. JAVA란?

 ​객체 지향 프로그래밍 언어로서 보안성이 뛰어나며 컴파일한 코드는 다른 운영 체제에서 사용할 수 있도록 클래스로 제공됨. 

(네이버 지식백과 제공)                  

1.1 객체 지향 프로그래밍이란?

  • 객체(의사나 행위가 미치는 대상으로서, 프로그램의 기본단위)가 모여 하나의 프로그램이 되는 것을 지향하는 프로그래밍

1.2 객체지향 특징

  • 캡슐화: 데이터를 기능으로 보호하여 데이터의 입출력이 기능을 통해 통제되도록 설계하는 것    
  • 다형성: 약간 다른 방법으로 일을 하는 함수를 동일한 이름으로 호출해 주는 것
  • 상속​성: 상위개념의 특징을 하위 개념이 물려받음
  • 추상화: 공통의 속성이나 기능을 묶어 이름을 붙이는 것

 

2. JAVA를 사용하기 위한 환경설정

 2.1 JDK다운

    해당 포스트 참조()

    *JDK Download 파일이름(jdk-8u5-windows-x64.exe)이 의미하는 바는? 

     => 8은 1.8 버전임을, windows-x64는 윈도우에서 작동하는 JDK라는 것을 알려줌

 

그렇다면 왜 JDK는 다운로드 받아야 되는 파일이 다를까? 2.2 에서 살펴보자! 

 

  2.2 JDK(Java Development Kit)란?

  "JAVA API​ + JVM(Java Virtual Machine) + Compiler(Javac)"로 이루어져 있는 것으로 JAVA언어를 쓰기위해 필수적으로 설치해야 함.

     |                            |                            |

개발을 위한 환경         실행을 위한 환경                 컴퓨터가 이해할 수 있도록 바꾸는 과정

(클래스들의 집합)    (운영체제 종류에 따라 다름)

 

위의 질문의 해답은 바로 JVM때문!! 

바로 운영체제 종류에 따라 JVM이 다르기 때문에 JDK종류를 다르게 설치해야 하는 것이다.


* 참고1: JDK구조를 그려보자면 아래와 같다.


 

* 참고2: JDK설치 후 설치경로의 bin 파일에 보면 위 구조와 같이 JRE말고도 complier, interpreter, Debugger 등.. 개발도구를 볼 수 있다. 


  2.3 JAVA API

   JAVA API는 마치 레고의 블럭 같은 것이다!

   이미 만들어져있는 여러 모양의 블럭(API)을 조립(Coding)해서 새로의 물체(Program)를 만들어 내는 것!

  • 중요 API Class: class system(가장 많이 쓰이는 class)
  • Package와 Class: Package는 Class의 집합체

        (http://docs.oracle.com/javase/7/docs/api 에서 API 검색 가능)

 

  2.4 JAVA Compiler되는 과정

                      Javac(번역)                      Java(실행)

  Sample.java  ----------> Sample.class ----------> 실행결과

                                       (바이트코드)

 

  2.5 Eclipse(JAVA 개발 툴)

  •   다운: 해당 포스트 참조()
  •   종류: SE(웹개발을 코딩X), EE(웹개발을 코딩O)

 

3. 첨부

JDK구조.pptx


4. 참고사이트


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

[JAVA] "인스턴스변수VS 메소드"와 "클래스 VS 객체"  (0) 2016.12.31
[JAVA] 기초03  (0) 2016.12.31
[JAVA] 기초 - 주석  (0) 2016.12.31
[JAVA] 기초 - 자료형(변수)  (0) 2016.12.31
[JAVA] 기초02  (0) 2016.12.31

+ Recent posts