본문 바로가기

java

(29)
[Java] Clone Method 구현하기 Test.java ABC.java - Output - 직접 제작한 클래스의 복사가 가능한 Clone Method를 제작하는 방법 입니다. clone() Method를 저렇게만 구현하면 기본적인 동작이 가능합니다.
PHP 에서 str_pad와 같은 일을 자바에서 할려면... str_pad는 문자열을 지정한 만큼의 길이가 안되면 지정한 문자로 채우는 것입니다. $number = 123; $str = str_pad($number,5,"0",STR_PAD_LEFT) // "00123" 자바에서는 다음과 같이 하면된다. int number = 123; String str = String.format("%05d",number); // "00123"
UpCasting & DownCasting 조금 헷갈리던 UpCasting 과 DownCasting 이 이제야 이해가 되고 있네요; 위와 같이 Class가 있다고 하면.. Animal ani_1 = new Dog(); Animal ani_2 = new Cat(); Animal ani_3 = new Bird(); ani_1.move(); ani_1.run(); // 오류 발생 ani_2.sleep(); // Cat 의 sleep() 실행 ani_2.run(); // 오류 발생 ani_3.move(); // Bird의 move() 실행 ani_3.sleep(); ani_3.fly(); // 오류 발생 UpCasting을 하게되면 Animal class의 Memory 크기에 Dog, Cat, Bird의 Memory를 넣게 된다 그래서 UpCasting..
배열 참조와 2차원 배열의 선언 배열 참조 C에서 배열의 이름이 그 배열의 포인터를 가르키는 것과 같이 Java에는 배열의 이름이 참조값을 가진다. 그러므로 다음과 같이 사용하면 두개의 변수로 하나의 배열을 다룰수 있다. int[] num = {1,2,3,4,5}; int[] num_1 = num; int[] num_2 = num_1; 위의 세 변수 num, num_1, num_2는 모두 같은 참조값을 가지고 있기 때문에 하나의 배열이라고 볼수 있다. 만약 하나의 변수이름으로 값을 수정하게 되면 3개의 값이 다 바뀌는것 같을 것이다. num_2[0] = 9; for(i=0;i
배열 선언, 복사 자바에서의 배열 선언은 C와는 조금 다르다. C에서는 int num[10]; int num2[]={1,2,3}; 이런식으로 하였다면 자바는 int[] num = new int[10]; int[] num2 = new int[]{1,2,3}; int[] num3 = {1,2,3}; 이렇게 3가지 방법이 있다. 2,3 번째는 초기화를 같이 해주는 것이다. 자바와 C의 배열의 다른점은 자바에서는 배열을 만들고 메모리를 할당해 줘야 한다는건데 int, float등 기본 데이터형은 자동으로 메모리가 할당되지만 객체인 경우는 그렇지 않다. 그래서 직접 할당을 해줘야 한다. 안그러면 NULL값이 있게 된다. Person[] yoon = new Peson[10]; 이렇게 한다고 배열에 메모리가 할당되지 않는다. 값을 출..
오버로딩(overloading) 와 오버라이딩(overriding) 이건 자바에만 해당되는 개념이 아니다. 거의 모든 객체지향 언어에서 사용되는 개념일 것이다. 오버로딩(overloading) - 메소드 이름이 같고 매개변수의 수나 타입이 틀린것이다. int sum(int a, int b); int sum(float a, float b); 이런것이다. 컴파일시 매개변수의 갯수와 데이터타입에 따라서 함수명을 바꿔준다고 한다. 자바에만 해당되지는 않을 것이다. 오버라이딩(overriding) - 상속에서 부모클래스의 메소드를 하위메소드에서 재정의 하는것이다. class Father { void sayName() { System.out.print("My name is brown"); } } class Son extend father { void sayName() { Syste..
클래스 기초 클래스 = 구조체 + 함수 클래스를 간단하게 말하자면 저렇게도 말할수있지 않을까 한다. 클래스는 객체이고 객체지향이며 생성자, 소멸자를 포함하고 있으...... 물론 그렇지만 간단하게 얘기하자면 저렇다는 것이다. 클래스에는 구조체처럼 여러타입의 여러개의 변수를 클래스라는 범위안에 넣을수 있다. 그리고 그안에 있는 변수를 자유롭게 접근할수 있는 클래스안의 함수를 매소드(method)라고 한다. public class Dog{ public int age; public int getAge(){ return age; } } 위는 아주 간단한 클래스이다. Dog 라는 이름의 클래스이며 int형의 age라는 변수가 있으며 getAge() 라는 메소드가 포함되어있다. getAge는 단순히 age를 리턴하는 메소드이다..
데이터 타입 ※ 기본 데이터 타입 정수형 실수형 불형 1 byte byte boolean 2 byte short, char 4 byte int float 8 byte long double ※ 애매할수 있는 데이터를 표현하는 방법 10 : int 10L, 10l : long 3.14 : double 3.14F, 3.14f : float 3.14D, 3.14d : double 'A' : char "ABC" : String 0xA : 16진수 (앞에 0x 를 붙인다) 0123 : 8진수 (앞에 0을 붙인다)