반응형

package com.access.array;


/*

 *  오브젝트와 클래스의 차이점

 *  Object

 *  1) 클래스의 인스턴스이다.

 *  2) 현실 존이다(펜, 렙탑, 모바일 등등)

 *  3) 물리적 존재이다

 *  4) 오브젝트는 new 키워드로 만들어진다.

 *  5) 매번 요구시 만들어진다.

 *  6) 오브젝트는 만들어질때 메모리에 할당된다.

 *  7) new 키워드,newInstance() method 등등 다양한 방법으로 오브젝트를 만들 수 있다.

 *  

 *  

 *  Class

 *  1) 오브젝트를 만들때 참조하는 도안 혹은 청사진이다.

 *  2) 유사한 객체의 그룹이다.

 *  3) 논리적 존재이다.

 *  4) class 키워드로 선언된다.

 *  5) 한번 선언된다.

 *  6) 클래스는 만들어질때 메모리에 할당되지않는다.

 *  7) class키워드로만 클래스를 정의할 수 있다.

 */

public class object {


}



반응형
by 발전소장 에르 :) 2017. 9. 25. 23:44
반응형

package com.command;


/*

 *  Java Command Line Argument

 *  자바프로그램을 실행할 때, 커맨드 라인에 인수를 넣어주는 것을 의미한다.

 *  콘솔에서 입력되어 프로그램에 전달되는데 입력으로 사용될 수 있다.

 *  그래서 프로그램이 작동할 때 다양한 값을 넣어 어떻게 반응하는지 테스트할때 편리하게 사용될 수 있고

 *  명렁창에서 n개의 인수를 줄 수 있다.

 *  

 *  

 *  예제를 보자. 

 */

public class CommandLineExample {

public static void main(String[] args) {

System.out.println("First argument is " + args[0]);

// 필자는 Run Configuraion에서 argument로 java 라고 줬다.

}


}

result = First argument is java



반응형
by 발전소장 에르 :) 2017. 9. 25. 17:49
반응형

package com.strict;


/*

 * 우리가 부동 소수점 변수를 연산 수행하였을 떄, 

 * 어떠한 플렛폼에서든 동일한 결과를 얻을수있도 지켜주는 고마운 키워드가

 * 바로, 이번 시간에 다뤄볼  Java Strictfp Keyword이다.!

 * 

 * (구)플렛폼에서 (신)플렛폼으로 옴겨서 실행할 경우 정확성이 차이가날 수 가 있다.

 *  그 말인 즉슨, 큰 값을 계산할수록 오차범위가 커진다는것이다.

 *  게다가 오차범위가 크다는것은 혼란과 재앙을 야기하는데 충분한 요소인데 특히 

 *  건축, 의료 분야에서는 진짜로 Catastrophe!가 될 수가 있고 이는 

 *  충분히 인명사고로 이어질 수 있으며 금융에서는 인플레, 디플레, 등등 인류에게 영향을 

 *  미칠 수도 있다.( 물론 그럴일은 없겠지만)

 *  그래서 자바는 strictfp키워드를 지원함으로서 플렛폼마다 차이가 날 수 있는 오차범위를

 *  잡고자 꾀했다. 부동소수점의 고질적 문제가 해결된것이다.

 *  

 */

public class strict {


public strictfp class A { // 클래스에 사용가능하고,

private strictfp void A_Method() {

}// 메소드에 사용이가능하며,

}


protected strictfp interface B { // 인터페이스에도 사용할 수 있다.

}


}


class B {

// strictfp abstract void m(){ } 추상메소드에 사용이 불가하며,

// strictfp int da = 10; 변수에 붙을 수 없고

// strictfp B(){} 생성자에 붙을 수 읍당.


}



반응형
by 발전소장 에르 :) 2017. 9. 25. 17:40
반응형

package com.example.recursive;

/*

 * 재귀(귀납) - Recursive

 * 메소드가 자기 스스로를 끊임없이 호출하는 과정을 의미한다.

 * 그것을 재귀메소드라 칭한다.

 * 

 * syntax

 * 

 * returntype methodname(){

 * methodname();

 *  

 */


public class RecursiveExample {

static void p() {

System.out.println("P has called");

p();

}


public static void main(String[] args) {

p();

}

}  

몇번돌다가 에러를 뱉을겁니다.. 재귀하면 떠오르는 StackOverFlow!!

///////////////////////////////////////////////////////////////


package com.example.recursive;



public class RecursiveExample2 {


static int factorial(int n) {

// static method

if (n == 1)

return 1;

else

return (n * factorial(n - 1));

// 2이상의 값이 들어올 경우 위 구문이 진행된다./

//그리고 n-1한 값을 다시 factorial에 넣고 돌린다.

// 그러다 n이 1이 되면 1을 리턴합니다.

// 원리는 아래와 같습니다.

// factorial(5) 

                       factorial(4) 

                             factorial(3) 

                                 factorial(2) 

                                        factorial(1) 

                                               return 1 

                                    return 2*1 = 2 

                             return 3*2 = 6 

                             return 4*6 = 24 

                       return 5*24 = 120

//return안에서 factorial메소드가 파라미터가 1이 될때까지

//돌고난 후 return을 통해 값이 출력되는데 태엽을 상상하시면 이해가

// 쉬울것같습니다.

}


public static void main(String[] args) {

System.out.println("Factorial of 5 is: " + factorial(5));


}

}

//////////////////////////////////////////////////////////////////

public class RecursiveExample3 {


static int count = 0;


static void p() {

count++;

if (count <= 9) {

System.out.println("hello " + count);

p();

}

}


public static void main(String[] args) {

p();

}

}

result = 

hello 1

hello 2

hello 3

hello 4

hello 5

hello 6

hello 7

hello 8

hello 9


//////////////////////////////////////////////////////////////////

// 파보나치 수열!

public class RecursiveExample4 {

static int n1 = 0, n2 = 1, n3 = 0;


static void printFibo(int count) {

if (count > 0) {

n3 = n1 + n2;

n1 = n2;

n2 = n3;

System.out.print(" " + n3);

printFibo(count - 1);

}

}


public static void main(String[] args) {

int count = 15;

System.out.print(n1 + " " + n2);// printing 0 and 1

printFibo(count - 2);// n-2 because 2 numbers are already printed

}

}

result = 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377




반응형
by 발전소장 에르 :) 2017. 9. 25. 17:37
| 1 |