기타/프로그래밍 분류 56

Java - 22문자열

String 클래스 String은 우리가 앞에서 만들었던 클래스와 같이 예약어 new로 인스턴트를 생성하고 해당 인스턴트에 접근할 수 있는 주소값을 인스턴트 변수에 저장한다. 이후 인스턴트 이름으로 String 클래스의 해당 인스턴트에 문자열 작업을 수행할 수 있다. 예를 들어서 설명하자면 String 객체를 선언하고 str에 "안녕하세요"라는 글자넣어 보면 str[0]=안 str[1]=녕 str[2]=하 str[3]=세 str[4]=요 이렇게 저장되는것을 사용한다는 소리다. String 객체 사용방법 1) 첫번째 String str = new String (); str = "느티나무"; System.out.println(str); 2)두번째 String str = new String("느티나무"); S..

Java - 21자바 표준 라이브러리

자바 표준 라이브러리는 자바 플랫폼 별로 존재한다. 지금은 Java SE를 배우고 있으므로 SE에대해서 알아보자. Java SE 표준 라이브러리는 JRE와 함께 JAR 파일로 배포된다. 그 위치는 JRE를 설치한 디렉토리 아래에 존재한다. 나의 경우는 C:\Program Files\Java\jre6\lib에 jar파일들이 모여있다. 각각 .jar 파일을 알집으로 열어보면 각 폴더별로 여러가지 클래스가 있는 것을 볼 수 있다. 자세히 살펴보면 jar파일은 패키지 형식으로 이루어져 있는것을 알 수있다. 우리가 자주 쓰는 String 이라는 클래스는 rt.jar 파일의 java/lang/String 에 들어있는것을 확인 할 수 있다. 그런데 이런 클래스들을 사용하려면 어떻게 해야할가? 역컴파일해서 파일구조를 ..

Java - 20.참조

'참조'는 특정 객체가 메모리에 생성되며 가지는 유일한 주소값을 통해 해당 객체(클래스,인터페이스, 등)에 접근한다. 쉽게 말하자면 일반적인 변수를 만들면 곧바로 메모리가 만들어지고 그 메모리에 값을 넣지만 참조 타입은 메모리에 메모리를 하나 더 만들고 첫번째 메모리는 두번째 메모리의 주소값을 넣고 두번째 메모리에 값을 넣는다. 더 쉽게 말하면 보통 변수는 철수야~ 하면 철수가 오지만 변수 -> 데이터 참조 타입(레퍼런스 타입)은 철수야~ 하면 철수집주소를 아는 녀석이 주소를 적어주고 그 주소대로 찾아가야 철수를 만날 수가 있다. 변수 -> 데이터의 주소 -> 데이터 참조타입은 클래스 타입, 인터페이스 타입, 배열 타입, 열거 타입 등으로 구성된다. '참조'는 특정 객체가 메모리에 생성되며 가지는 유일한..

JAVA - 19 인터페이스

인터페이스는 부모 클래스의 모든 메서드를 추상화 할 때 자식 클래스에 존제하는 메서드를 외부에 숨길 수 있어 불필요하게 수행 내용이 포함된 클래스로 직접 접근하는 것을 막을 수 있다. 따라서 클래스의 모든 메서드를 추상 메서드로 정의할 필요가 있을 경우 클래스 대신 인터페이스를 사용하면 편리하다. 인터페이스는 기존 클래스를 정의할 때 사용하는 class라는 예약어 대신이 interface 라는 예약어를 사용해 정의한다. 물론 interface 예약어 앞으로 접근 제어 예약어들이 올 수 는 있지만, 인터페이스의 구성 메서드는 오직 추상 메서드만 존재한다. 즉 필드나 일반 메서드(추상 메서드가 아닌 메서드)는 인터페이스의 구성요소가 될 수 없다. 사용방법 1.임의의 클래스에서 인터페이스를 사용하려고 할 경우..

JAVA - 18.추상 메서드와 추상 클래스

추상메서드,클래스란? 추상 메서드,클래스는 부모 클래스에서 정의한 메서드 바디가 자식 클래스에서 메소드의 바디를 모두 재사용하게되었을경우 부모 클래스에서 정의한 메서드는 모두 무용지물이 된다. 즉 부모클래스에서 정의한 메서드의 시그니처(리턴형, 식별자, 매개인자 등)느 모든 자식 클래스에서 일관되게 사용하되 메서드의 바디는 서로 다른 내용으로 기술 때 어차피 메서드의 바디를 자식 클래스별로 채울 것이므로 해당 메서드를 부모 클래스에서 추상 메서드로 정의하는 것이 현실적이다. 사용방법 추상클래스는 메서드의 리턴형 앞에'abstract'라는 예약어와 일반적인 메서드의 바디가 ';'로 생략한다. 또한 추상 메서드를 하나 이상 포함하고 있는 클래스에서도 'abstract' 예약어를 명기해야 한다. public ..

JAVA - 17.오버라이드,오버로드

오버라이드란? 오버라이드는 부모 클래스와 자식 클래스 사이에 존재하는 상속과 밀접한 관련이 있다. 보통 상속 관계에 있는 자식 클래스는 부모 클래스로부터 상속받은 메서드를 그대로 사용한다. 즉 자식클래스에서 추가로 정의된 메서드를 제외하고 상속받은 메서드는 부모 클래스에서 정의한 기능을 그대로 자식 클래스에서 사용하기 된다. 그러나 경우에 따라서는 부모 클래스에서 정의한 메서드를 자식 클래스에서 재정의(overriding)하여 실행 사항을 자식 클래스에 맞게 변경하는 경우도 생긴다. 이럴 경우 오버라이딩을 쓰게 된다. 오버라이딩 하기 메서드 시그니처 재정이의 범위에서 제외되며 단지 메서드의 바디를 제정의한다. 이때 매서드 시그니처는 재정의 범위에서 제외되며 단지 메서드의 바디만을 재정의 하게된다. *메서..

JAVA - 16.상속

네이버 사전에선 이렇게 나와있습니다.! 사람의 사망으로 인한 재산상 법률관계의 포괄적 승계. 종래 한국의 상속법은 재산상속과 더불어 호주상속(戶主相續)을 인정하는 복합적인 상속제도를 취하였다. 호주상속은 호주권의 승계를 위한 일 자바의 뜻도 위의 내용과 거의 비슷합니다. 다만 다른점은 죽어서 주는게 아니라 똑같이 복사해서 모두 줍니다. 아! 세금도 없어요 ..ㅋ 상속이란? 새로운 클래스를 구현할 때 다른 클래스의 구성요소(필드, 메서드)를 물려받아 사용한다면 개발 속도를 향상시킬수 있습니다. 새로이 만들어지는 클래스의 구성요소로 흡수하는 것을 상속(Inhertiance)이라고 합니다. *물려주는 클래스를 부모 클래스(또는 상위 클래스, Super 클래스)라고 하며, 물려받는 클래스를 자식 클래스(또는 하..

Java - 15.생성자

생성자는 클래스의 인스턴스를 생성할 때만 호출되는 메서드로 인스턴스에 대한 메모리를 할당함과 동시에 필드의 값을 초기화 하는 역할을 한다. 생성자는 클래스에 위치하는 메서드이다. 따라서 식별자의 이름이 필요한데 생성자의이름은 항상 클래스의 이름과 일치해야 한다. 만약 임으로 클래스의이름과 다른 이름의 생성자를 만들면 이것은 해당 클래스의 일반 메서드가 된다. 따라서 생성자 본연의 기능을 사용하려면 반드시 생성자의 이름과 클래스의 이름이 같아야 한다. 사용방법 1.new 클래스명() 생성자를 기술하지 않을 경우 컴파일러가 자동으로 default 생성자를 생성한다. public class TestClass{ public static void main(String[] args){ new TestClass; }..

Java - 14.패키지

패키지란? 패키지는 이용하는 것은 클래스들을 묶는 것을 말합니다. 패키지는 비슷한 목적을 가진 다수의 클래스들을 포함합니다. 패키지는 작고 제한된 클래스만을 사용하면 패키지를 전혀 쓸 이유는 없습니다.하지만 자바 프로그래밍을 계속 하다보면 자신이 만든 클래스들이 불어나게 됩니다. 이런 가각의 클래스들이 개별적으로는 잘 설계되고, 재사용이 가능하며, 캡슐화가 잘 되어있다고 해도, 덩치가 불어나게되면 가독성을 위해서라도 패키지가 필요합니다. 패키지의 장점 여러 클래스를 한 단위로 구성하게 해줍니다. 하드 디스크에 파일과 프로그램을 정리할 때 폴더나 디렉토리를 쓰는 것처럼 패키지는 여러 클래스들을 묶어 각 프로그램이 필요할때 사용하게 해줍니다. 이름을 붙일 때 충돌을 막아 줍니다. 자바 클래스의 숫자가 늘어남..

JAVA - 13.접근제어

접근제어란? 크래스 또는 클래스의 멤버(필드, 메서드)의 접근을 제어하기 위해 필요한 기능을 접근제어라고 한다. 예를 들어서 쉽게 말하면 int var;이라는 변수가 있다고 할때 var 을 허락받지 못하면 var을 읽을 수 없게 한다는 것이다. 접근제어 명령어 public : 모든 클래스에서 접근 가능 protected : 상속받은 자식 클래스 또는 같은 패키지에서 접근 가능 default : 같은 패키지의 모든 클래스에서 접근 가능 private : 같은 클래스에서 접근 가능 접근제어 강한순서 private>default>protect>public public public 은 자바의 접근을 제어하는 예약어중 하나로 외부 어느 메서드에서라도 해당 클래스, 메서드, 필드로 접근하는 것을 허용한다는 의미이다..