코딩/Java

    참조와 복제

    복제 : 전자화된 시스템의 가장 중요한 특징은 복제다. 현실의 사물과 다르게 전자화된 시스템 위의 데이터를 복제 하는데는 비용이 거의 들지 않는다. 바로 이러한 특징이 소프트웨어를 기존의 산업과 구분하는 가장 큰 특징일 것이다. 프로그래밍에서 복제가 무엇인가를 살펴보자. 결과는 당연하다. 값을 변경한 것은 변수 b이기 때문에 변수 a에 담겨있는 값은 그대로이다. 변수 b의 값에 변수 a의 값이 복제된 것이다. 이를 그림으로 표시하면 아래와 같다. new로 생성하는 자료형들은 참조 데이터형이다. 참조 : run value와 renReferenced의 놀라운 차이점이 있다. 변수 b에 담긴 인스턴스의 id 값을 2로 변경했을 뿐인데 a.id의 값도 2가 된 것이다. 이것은 변수 b와 변수 a에 담긴 인스턴스..

    상수와 enum2

    enum은 열거형(enumerated type)이라고 부른다. 열거형은 서로 연관된 상수들의 집합이라고 할 수 있다. 위의 예제에서는 Fruit와 Company가 말하자면 열거인 셈이다. 이러한 패턴을 자바 1.5부터 문법적으로 지원하기 시작했는데 그것이 열거형이다. 이전 코드를 enum으로 바꿔보자. switch에서 case Furuit.APPLE를 쓰지 않는 이유는 위의 type의 데이터 타입이 Furuit이기 때문에 쓸 필요가 없는 것이다. enum은 많은 곳에서 사용하던 디자인 패턴을 언어가 채택해서 문법적인 요소로 단순화시킨 것이라고 할 수 있다. if(Fruit.APPLE == Company.APPLE){ System.out.println("과일 애플과 회사 애플이 같다); } 이 코드는 여기..

    상수와 enum

    상수는 변하지 않는 값. 아래에서 좌항이 변수 우항이 상수 int x = 1; 1 = 2; 그래서 이와같은 구문은 있을 수 없다. 이와 같이 코드를 짜면 주석이 지워지거나 로직과 멀리 떨어져 있으면 어느 기능을 하는지 알 수 없다. 또한 57, 34, 93의 의미를 모르는 문제도 있다. 코드를 이해해야 하는 사람은 상당한 어려움에 봉착하게 된다. final은 변수의 값이 한번 지정되면 바뀌지 않는 키워드다 즉 상수가 된다. static는 클래스의 변수 ( 하나의 저장공간을 공유 ) 인스턴스 마다 값이 바뀔 필요가 없기에 static을 사용 이렇게 코드를 짜면 주석설명이 필요 없다. enum의 배경 : 애플리케이션이 커지는 과정에서 원래는 과일에 관한 상수만 필요했는데 필요에 의해 기업 이름에 대한 상수가..

    object 클래스

    object 클래스는 모든 클래스의 조상이다. 자바에서 상속이란 필수적이다. 상속하건 하지 않았건 기본적인 상속을 하게 된다. 이 코드는 이 코드와 같다 여기서 알 수 있는 점은 자바의 모든 클래스는 Object를 암시적으로 상속받고 있는 것이다. 즉 Object는 모든 클래스의 조상이다. 이런 이유는 모든 클래스가 공통으로 포함하고 있어야 하는 기능을 제공하기 위함이다. http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html 위의 링크에서 Object클래스가 가지고 있는 메소드를 보여준다. 다시 말해서 자바의 객체는 위의 메소드들을 반드시 가지고 있다. API : to String 여기서 굳이c1.toString()를 하지 않고 c1만 써도 .t..