Java/Theory 29

[Java/Theory]09. Import

9. import Source File를 작성할 때 다른 Package의 class를 사용할 때는 포함된 Package의 이름과 같이 사용해야한다. 하지만, 매번 작성하기기 불편하다. Coding하기 전에 import문으로 사용하고자 하는 Class의 Package를 미리 명시하면 Source File에 사용되는 Class의 이름에서 Package명은 생략할 수 있다. import문의 역할은 Compiler에게 Source File에 사용된 Class의 Package에 대한 정보를 제공하는 것이다. 컴파일러는 import문을 통해 Source File에 사용된 Class들의 Package를 알아 낸 다음, 모든 Class 이름 앞에 Package 이름을 붙여 준다. import문은 Program 성능에 ..

Java/Theory 2016.05.30

[Java/Theory]08. Package

8. Package * Class들의 묶음이다. 패키지에는 Class나 Interface를 포함 시킬 수 있으며, * 서로 관련된 Class들끼리 그룹 단위로 분류하여 Class를 효율적으로 관리할 수 있다. * 동명의 Class 일지라도 서로 다른 Package에 존재하는 것이 가능하므로, 자신만의 Package 체계를 유지함으로써 다른 개발자가 개발한 Class Library의 Class와 이름이 충돌하는 것을 피할 수 있다. * 단순히 Class의 이름으로만 Class를 구분 했지만 Class의 실제 이름(Fully Qualified Class Name)은 Package의 이름을 포함한 것이다. 예를 들면, String Class의 실제 이름은 java.lang.String이다. 즉, java.la..

Java/Theory 2016.05.30

[Java/Theory]07. 상속

7. 상속 - Constructor * 객체지향의 특징중 하나인 '객체는 서로 다른 상태를 가지고 있다'는 Constructor라는 Method에 접목된다. * 처음부터 설정된 값으로 똑같은 Instance들을 생성하고 각자만의 특징을 갖게 만든다면, 일일이 Instance의 속성을 바꿔야하기 때문에 코드의 효율성이 떨어지는 것은 물론 객체지향에 어긋난다. * 그러므로 처음에 Instance를 생성할 때, Constructor를 통하여 각자만의 상태로 Instance를 초기화 함으로서, * '객체는 서로 다른 상태를 가지고 있다'라는 특징을 보여주고 있다. * Constructor는 메모리에 Class를 적재하는 역할을 하고 있다. - super, this, super(), this() * super, ..

Java/Theory 2016.05.30

[Java/Theory]06. OOP

6. OOP(Object Oriented Programming) * OOP는 현실세계에 존재하는 것을 시스템으로 표현하는 방법론이다. * 현실세계의 모든 것을 객체라는 것으로 추상화 하여 프로그램상으로 반영하는 방식이다. * 각 객체간의 통신(Message)을 통해서 결과를 처리하는 방식이다. * 객체지향의 기본적인 원리로는 Abstraction, Encapsulation, Modularity 그리고 Hierarchy가 있다. * 이 원리들은 Object, Class, Polymorphism, Relationships라는 개념들에 적용하게 된다. * 이들이 지원하는 언어(Java, C++, C#)를 Object Oriented Programming Language라 부르며, Object Oriented ..

Java/Theory 2016.05.30

[Java/Theory]05. Reference

5. Reference 5-1. Reference Datatype의 키워드 1. new 해당 Datatype의 사이즈를 결정하는 동적 할당 키워드. A a = new A(); 의미 : new라는 키워드를 통해 class A를 메모리에 적재하여 instance를 생성한다. 변수 a는 생성된 인스턴스의 주소를 참조한다. 위의 경우 A라는 클래스를 instance화 하였다. 2. . Reference에서 관계를 참조하는 키워드 5-2. Call by value, Call by reference 1. Call by value. 값을 복사해서 함수에 넘겨주는 방식. 원본의 값이 변경될 가능성이 없다는 특징을 가지고 있지만, 값을 넘겨 줄때마다 고비용, 복사손실 문제가 발생하는 단점도 있다. Ex 1 : 1234 ..

Java/Theory 2016.05.30

[Java/Theory]04. Operator, Condition, Array

4. Operator, Condition, Array - + 정수형이나 실수형은 Datatype에 따라 Casting을 하며 혹은 하지 않고 더하는데 연산의 의미를 두지만 문자형의 경우 이 연산자를 Append라 부른다. System.out.println("aaa" + 1);의 경우 1이 문자형으로 Cast된다. - Shift, Bit Operator 자바는 인간과 친숙한 HLL(High Level Language)다. C계열의 언어는 컴퓨터와 친숙한 LLL(Low Level Language)이다. Shift, Bit는 Binary Operation이므로 LLL에 해당된다. 따라서 자바에서는 Shift, Bit연산은 사용할 수 있으나 자주 사용하지 않는다. - Condition if나 while안에 조건..

Java/Theory 2016.05.30

[Java/Theory]03. Datatype

3. Datatype 프로그램의 언어에서 해당 데이터들을 종류에 따라 처리하기 위해 분류된 것. 각 종류와 고유의 메모리 크기마다 표현하는 객체. Primitive Datatype과 Reference Datatype으로 분류가 된다. - Primitive Datatype * 크게 정수, 실수, 문자, 논리로 분류되며 이들 마다 데이터의 크기는 다르다. * 정수 : byte(1 byte), short(2 byte), int(4 byte), long(8 byte)로 분류되며 default type은 int다. * 실수 : float(4 byte), double(8 byte)로 분류되며 default byte은 double이다. * 문자 : char(2byte) * 논리 : boolean(1 bit) (lon..

Java/Theory 2016.05.30

[Java/Theory]02. 환경변수

2. 환경변수Command혹은 Terminal에서 프로그램을 실행하기 위해 경로와 함께 명령어가 입력된다.그러나 이 경로를 매번 입력하기가 불편하기 때문에 시스템 환경변수에서 설정하도록 한다. 1. JAVA_HOME 자바의 JDK가 설치된 경로( C:\Program Files\Java\jdk1.8.0_66 ) 2. path 운영체제에서 관리하는 경로. JAVA_HOME에 bin을 추가하여, bin에 있는 파일들을 command에서 파일명만 입력하면 실행할 수 있도록 운영체제가 경로를 잡아준다. (운영체제가 한다는게 무슨말?) 3. classpath package를 import하는데 있어 용이하게 하기 위한 경로?

Java/Theory 2016.05.30

[Java/Theory]01. 개요

1.개요자바는 C++를 기반하였고 C++의 혼란을 제거하는 단순성과 객체지향이 특징이다.자바 가상머신은 운영체제와 독립적이기 때문에 플랫폼에 독립적이다. 이에 따라 JDK(Java Development Kit)를 설치하는 이유는플랫폼에 독립적인 개발을 위하여 자바의 플랫폼인 JDK를 설치한다.허나 JDK는 오라클에 지원이 필요하므로 오라클과 OS에는 종속적이다. - JDK * Includes a complete JRE plus tool for developing debugging, and monitoring Java Application. * JDK는 Java flatform, J2SE Flatform이라 부르기도 한다. * JDK안에는 JRE(Java Runtime Environment)와 Tool이 ..

Java/Theory 2016.05.30