패키지란?


패키지는 비슷한 클래스들을 묶어 놓은 그룹이다.'


package king;

public class kim{

}


pakage king;

public class kim2{

}


이런식으로 한 패키지 안에 두클래스가 있다고 치자.


kim클래스가 있는 소스에서 kim2클래스에 있는 메소드들을 사용하고싶다면


중요!!

import king.kim2;  또는

import king.*; 모든 클래스를 참조한다.


서브패키지


pakage king.k;


king패키지 하위로 k가 있다. 이런식으로 패키지를 만들어 갈 수 있다.





블로그 이미지

왕왕왕왕

,

public class Animal { //동물이라는 클래스이다

public static void main(String[] args) {

Animal cat = new Animal(); //동물이라는 클래스를 객체로 생성한것이다.

}

}


 new 는 객체를 생성할 때 사용하는 키워드이다. 이렇게 하면 Animal 클래스의 인스턴스(instance)인 cat, 즉 Animal의 객체가 만들어진다.



정확히 객체와 인스턴스란?

클래스에 의해서 만들어진 객체를 인스턴스라고도 한다. 그렇다면 객체와 인스턴스의 차이는 무엇일까? 이렇게 생각 해 보자. Animal cat = new Animal(); 이렇게 만들어진 cat은 객체이다. 그리고 cat이라는 객체는 Animal의 인스턴스(instance)이다. 즉 인스턴스라는 말은 특정 객체(cat)가 어떤 클래스(Animal)의 객체인지를 관계위주로 설명할 때 사용된다.  "cat은 인스턴스" 보다는 "cat은 객체"라는 표현이 "cat은 Animal의 객체" 보다는 "cat은 Animal의 인스턴스" 라는 표현이 훨씬 잘 어울린다.



1. field , member vaiable (변수)

:클래스 내의 메소드들은 자유롭게 사용이 가능

:외부에선 접근 지정자에 의해 사용유무가 결정이 된다.


2. Method: 외부와 내부를 연결시켜주는 인터페이스 역할

1) instance method

:객체를 생성한 후에 사용할 수 있는 메소드

2) static method

:객체의 유무와 상관없이 사용할 수 있는 메소드

:공유의미로 사용(메모리 절약효과)


3.  constructor (생성자 함수) => 객체등록

:객체 생성시 자동호출 되어지는 함수

:생성자는 호출 실패시 객체가 만들어지지 않는다.

:생성자는 오버로딩이 가능하다.

:생성자는 클래스명과 동일하다.

:생성자는 리턴타입이 존재하지 않는다.

:생성자는 명시적으로 만들지 않을 경우 디폴트 생성자가 생성된다.

그런데 명시적으로 만들경우 디폴트 생성자는 제공되지 않는다.



public class Main {


//디폴트생성자대신 명시적으로 생성자함수를 만들었다.

Main(){

System.out.println("생성자함수 호출완료");

}

//메인함수에서 생성하게되면 디폴트생성자에있는 문자열이 출력된다.

public static void main(String[] args) {

// TODO Auto-generated method stub

Main m = new Main();

}

}

블로그 이미지

왕왕왕왕

,

public class test { //이건 클래스고


public static void main(String[] args) { //이게 메소드이다

// TODO 자동 생성된 메소드 스텁

boolean a = true;

System.out.println(!a);

}

public void a(){ //이건 test클래스에 a라는 메소드이다.

}

}




메소드들은 어떤 기능을 하는 것들이다.


값을 받을수도 있고,

받는 값없이 반환 할 수도 있다.


받는 거와 주는 것을 다 할수도 있고, 때로는 아무 것도 안받고 출력만 해줄수도있다.




간단한 예제로는


public class test {


public int sum(int a, int b) {

return a + b;

}


public static void main(String[] args) {

int a = 3;

int b = 4;


test myTest = new test();

int c = myTest.sum(a, b);


System.out.println(c);

}

}


main함수는 os에서 호출하기때문에 프로그램 종료할때 까지 두뇌 역할을 하게된다.

main함수에서 sum함수를 사용하기위해

test클래스를 myTest로 생성을 하고

sum함수를 불러오게된다.

sum항수에 파라미터로 선언했던 a,b를 전달해주고

반환값을 출력하는 c를 찍어보면 7이 나오게 된다.


'취업아카데미-JAVA' 카테고리의 다른 글

8. 클래스패스와 패키지  (0) 2015.06.28
7. 클래스와 인스턴스  (0) 2015.06.28
5. 실행흐름의 컨트롤 - 반복문,조건문  (0) 2015.06.28
4.연산자  (0) 2015.06.28
3.상수와 형변환  (0) 2015.06.28
블로그 이미지

왕왕왕왕

,

if~else


if(true or false)

{

true일때 실행되는영역

}else

{

false일때 실행되는영역

}


if~else if ~ else


if(true or false)

{

true일때 실행되는영역

}else if(true of false)

{

첫번째 false일때

}else if(true of false)

{

두번째 false일때

}else if(true of false)

{

세번째 false일때

}else

{

모두 false일때 실행되는영역

}


switch ~ break


switch(조건)

{

case 1 :

조건 1일때 실행

break;

case 2 :

    조건 2일때 실행

break;

case 3 :

조건 3일때 실행

break;

default :

아무것도 해당안될때 

break;

}

break;는 switch문을 탈출 하기위한것이다.
아에 종료하고싶다면 return을 사용하는 것도 된다.

for(초기화; 조건; 증감또는증가)

{

조건에 맞을경우 실행

}


for(String str : a)

{

a는 레퍼런스타입만 입력이가능하다.

a에 들어있는 값이 끝날때가지 반복해서 str에 저장해준다.

}


이 외에 반복문으로 do~while,while문이 있는데 for와 비슷하게 조건과 증가감연산을 통해 반복한다.


'취업아카데미-JAVA' 카테고리의 다른 글

7. 클래스와 인스턴스  (0) 2015.06.28
6.메소드와 변수의 스코프  (0) 2015.06.28
4.연산자  (0) 2015.06.28
3.상수와 형변환  (0) 2015.06.28
2.변수와 자료형  (0) 2015.06.28
블로그 이미지

왕왕왕왕

,

연산자


a = b + c;

이런식으로 사용하고, b와 c의 값을 더해서 a에 대입한다.


복합연산자


a+= b; 

a-= b;

a*= b;

a/= b;

a%= b;


a = a + b;와 같다

다른것들도 같은 방법이고 

%는 a를 b로 나눈 나머지 값을 뜻한다.


관계연산자


<, >, <=, >=, ==, !=

조건의 참 거짓을 가릴때 사용하고,

if문 외에도 반복분의 조건에도 쓰는 중요한 연산자이다.

true 또는 false를 반환한다.


논리 연산자


&&, ||, !

&&는 A && B , A와 B가 모두 true일때만 성립한다.


||는 A || B, A와 B 둘중에 하나만 참이여도 성립한다.


!는 !A , A가 true라면 !로 인해 false로 바뀐다.


증감, 감소 연산자


++, --

++n1 , n2++이라면, n1 이전에 ++로 인해 값이 증가되고 그값이 n1에 저장되고, 그값을 사용한다.

n2는 저장된 값을 사용하고 ++로 인해 증가된값이 저장된다.

 

비트연산자


&, |, ^, ~


& 비트단위로 and 연산을 한다.

| 비트단위로 or연산을 한다.

^ 비트단위로 xor연산을 한다.

~비트를 반전시킨다.


쉬프트 연산다


>>, << ,>>>

n>>2 n에 비트열을 2칸 오른쪽으로 이동시킨다

n<<2 n에 비트열을 2칸 왼쪽으로 이동시킨다.

n>>>2 n에 비트열을 두칸 오른쪽으로 이동 시킨다.





블로그 이미지

왕왕왕왕

,

상수란?


상수를 리터럴(literal)이라고도 한다.


자바에서 말하는 상수는 자료형을 기반으로 메모리 공간에 저장되는 데이터이다.


1, 5, 2.4, 7.5 ... 모두 상수


형변환?


기본적으로 정수형은 int, 실수형은 double을 defualt형으로 사용


예를 들면 short n1,n2 가 있는데 short형끼리 덧셈을 했다면


덧셈연산하기전에 int형의 정수로 변환하여 4바이트 형태가되서


연산을 하게 된다.


자동형변환


double num = 20; 

자료형이 double이지만, 정수 20이다. 이경우 20.0으로  자동형변환되어 저장된다.


int num = 20.5 

자료형이 int이지만 실수 20.5이다. 이경우 double형이 default이기때문에 

int 4바이트, double 8바이트가 되어 컴파일 오류발생한다.

데이터의 손실이 발생하더라도 제한적이거나 발생하지 않을때 자동형변환이 이루어진다.


자동형변환 규칙

                      --->>>

byte - short,char - int - long - float - double


바이트가 큰것이 작은 바이트의 자료형을 형변환되어 받을수 있다는것이다.

데이터 손실없이.


명시적 형변환


int num1 =100;

long num2 = (long)num1;

형 변환도 값을 반환하는 하나의 연산이다.

num1에 저장된 값이 변경되는 것이 아니라, num1에 저장된 값을 참조하여 long형으로 변환된 새로운 값을 

생성하여 변수 num2에 저장하는 것이다.





블로그 이미지

왕왕왕왕

,

변수란?


데이터의 저장과 참조를 위해 할당된 메모리 공간


변수(Variable)에 대한 간단한 이해


int num; 이 있다면,


1.10진수 정수를 저장할 메모리 공간을 할당

2.할당된 메모리 공간에 접근할 때는 num이라는 이름을 사용


int num은 이정도로 이해하면 되겠다.


자료형 종류


진위형

boolean: 1바이트


문자형

char: 2바이트 모든 유니코드문자

 

실수형

float: 4바이트

double: 8바이트


정수형

byte: 1바이트

short: 2바이트

int: 4바이트

long: 8바이트 


long이 가장큰 수를 표현 할수 있는데,


long 사용예

최대 표현할수 있는 -9223372036854775808 ~ 9223372036854775807 이다.

long num = 9223372036854775807L;

long num = 9223372036854775807l;

L이나 l을 붙여줘야 사용가능


byteshort가 적은 bit를 가지고 있어 절약할 수 있지만

jvm의 피연산자 스택이 4바이트 단위로 저장 하기 때문에 int보다 작은 자료형의 값을 계산시

int형으로 형변환 되어 연상이 수행된다. 그냥 int 사용.





블로그 이미지

왕왕왕왕

,

JDK 설치 순서부터

 

1. JDK다운 및 설치

2. 환경변수 설정

 

3. 시스템변수에 생성 및 추가한다.

CLASS_PATH  (.;)써준다.

JAVA_HOME 생성 (bin앞 디렉터리까지 경로를 작성)

PATH 추가 (%JAVA_HOME%\bin;)  오라클 경로앞에써준다

 

------이렇게안됬을경우 ------

JAVA_HOME만 작성

PATH에 경로를 JAVA_HOME에 작성한것처럼 따로 작성다시 해준다.

 

 

4. javac 나 java -version 으로 정상작동 확인한다.



OOP개념

1. 너무 추상적인것은 객체가 될 수 없다.

2. 구체화 된것은 객체가 될 수 있다.

3. 객체는 독립적으로 만들어야 한다.


OOP 4대 특징


1. 캡슐화: 데이터의 보호와 은닉을한다 오류발생을 최소화하고 재사용성이 용이하게한다.


2. 추상화: 추상적인것을 구체화하는것이다. 도형이란 것은 추상적이다. 도형이란 것 내부에는 삼각형 사각형 원형 등등 구체화된 것들이 있다. 


3. 상속: 상속은 기존에 작성된 부모클래스를 이어받아서 자식클래스에 동일한 속성을 가지는 새로운 클래스를 생성한다.

상속받은 속성을 변경도 할 수 있고, 추가할 수 도 있다. 코드의 확장 및 재사용성을 위해 사용한다.


4. 다형성:객체가 취하는 동작이 그때 그때 달라지는 것이다. 서로다른 타입에 객체들을 같은 이름으로 만들어진 함수로 처리가가능하다. 편의성과 코드의 간결성


간단하게 알고 갈것들!


function은 어떠한 일을 처리하는 것을 말한다.

전역변수는 프로그램 내에 모든 영역에서 사용가능한 변수를말한다.

상수는 변하지 않는 값을 말한다.

변수란 1프로그래머에 의해 이름을 할당 받는 메모리 영역이다.

2.상수를 저장하는 메모리 영역



기본소스에대한 설명



//package,import 만이 클래스 밖에 위치 할 수 있다.




//자바는 모든클래스가 상속구조 Object클래스의 상속을 모두 받는다. extends Object 묵시적으로 상속

class King {  //메인클레스명이 파일명이된다.



public static void main(String[] args){  //특수한 main 함수 os에서 호출하고 os에게 void리턴

//static으로 만들어진 함수나 변수는 객체와 무관하게 처음에 메모리 올라감

//static으로 선언되면 함수나 변수는 공유된다. 



System.out.println("hello world");  //System 클래스 out 필드(out이 static이다)

             //static이 아니면 new를 사용해 생성해줘야된다.

}

}



약속

클래스는 첫글자는 무조건 대문자

상수는 모든 글자가 대문자



 

 

'취업아카데미-JAVA' 카테고리의 다른 글

6.메소드와 변수의 스코프  (0) 2015.06.28
5. 실행흐름의 컨트롤 - 반복문,조건문  (0) 2015.06.28
4.연산자  (0) 2015.06.28
3.상수와 형변환  (0) 2015.06.28
2.변수와 자료형  (0) 2015.06.28
블로그 이미지

왕왕왕왕

,