목록컴퓨터 (50)
꿈 많은 사람의 이야기
가끔 프로그램을 하다 보면 단 하나의 객체만 만들도록 보장해야 하는 경우도 있다. 단 하나만 생성된다고 해서 이 객체를 싱글톤(Singleton)이라고 한다. 이러한 싱글톤을 만드려면 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다. 생성자를 외부에서 호출할 수 없도록 하려면 생성자 앞에 private 접근 제한자를 붙여주면 된다. 그리고 자신의 타입인 정적 필드를 하나 선언하고 자신의 객체를 생성해 초기화한다. 자신의 클래스 내부에선 new 연산자로 생성자로 호출이 가능하다. 정적 필드 또한 private 접근 제한자를 붙여 외부에서 필드 값을 사용못하게 막고 대신 외부에서 호출 할 수 있는 getInstance()메소드를 선언하고 객체를 리턴한다 1 2 3 4 5 6 7 8 9..
정적(static)이란 '고정'의 의미를 갖고 있다. 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다. 1 2 3 4 5 6 7 8 class A { static int num = 1; static void amt() { } } class B { A.num; A.amt(); } cs위 static으로 작성 해놓은 변수와 메소드가 정적 멤버이다. 정적 필드와 정적 메소드는 클래스에 고정된 멤버이므로 클래스 로더가 클래스(바이트 코드)를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리된다. 따라서 클래스의 로딩이 끝나면 바로 사용할 수 있다. 이것에 대한 접근은 클래스.필드; 클래스.메소드( 매개값) 으로 호출할 수 있다. 여기서 가장 중요한 특징은..
메소드는 객체의 동작에 해당하는 중괄호 {} 블록이다. 자바는 이러한 메소드를 이용해서 클래스안에서 기능을 동작하게 만든다. 메소드는 리턴타입 메소드 이름 ([매개변수1, 배개변수2..]){ 실행 소스; } 와 같이 만들어진다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Radio { int number; public void setVolume(int volume) { number = volume; } public int getVolume() { return number; } } Colored by Color Scripter cs 위에서 setVolume은 볼륨 값을 설정하는 메소드이다. 그리고 getVolume은 설정된 number 값을 return 해주는 return ..
생성자는 new 연산자와 같이 사용되어 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당한다. 객체 초기화란 필드를 초기화하거나, 메소드를 호출해서 객체를 사용할 준비를 하는것이다. 자바에서의 객체는 생성자를 실행시키지 않고서 만들 수 없다. new 연산자에 의해 생성자가 성공적으로 실행되면 힙 영역에 객체가 생성되고 객체 주소가 리턴된다. 모든 클래스에는 생성자가 반드시 존재하며, 하나 이상을 가질 수 있다(오버로딩). 만약 개발자가 클래스 내부의 생성자 선언을 생략했으면 컴파일러는 기본 생성자를 바이트 코드에 자동 추가 시킨다. 예를들어 소스 파일(A.java)에선 class A { } 이면 바이트 코드파일(A.class)에서는 class A { public A() { } } 와 같이 생성..
향상된 for문은 배열에서 많이 쓰이는 방법이다. String[] numbers = {"1", "two", "3"};for(int i = 0 ; i < numbers.length; i++){System.out.println(numbers[i]);} 기존에 이러한 방식으로 for문을 돌려 작성했다고 하면for each에선 이렇게 사용한다. for(String a : numbers){System.out.println(a);} 와 같이 하면 간결하게 for문을 작성할 수 있다.
가끔 사용자가 입력한 키보드의 버튼에 따라 프로그램을 처리해야할 때가 있다.다음은 키보드가 가지고 있는 키 코드이다. 숫자알파벳기능키방향키0 = 48A = 65N = 78a = 97A = 110Backspace = 8왼 = 371 = 49B = 66O = 79b = 98B = 111Tab = 9위 = 382 = 50C = 67P = 80c = 99C = 112Enter = [CR=13, LF= 10]오 = 393 = 51D = 68Q = 81d = 100D = 113Shift = 16아래=404 = 52E = 69R = 82e = 101E = 114Ctrl = 175 = 53F = 70S = 83f = 102F = 115Alt = 186 = 54G = 71T = 84g = 103G = 116ESC = 2..
perl 언어 좀 많이 생소한 언어죠 . 우연치 않게 접했지만 이런 언어는 학교 다닐 때 언어 역사를 보면서 잠깐 봤던 언어로 기억합니다. pascal, Ada 등등 익숙치 않은 언어를 접한 기분이네요.. 그럼 이 언어는 뭘까 도대체 그냥 뭐 C 같은 프로그래밍 언어인거 같네요(당연히..). 근데 CGI를 통해서 접근하는 언어라고 합니다. CGI는 웹 서버와 외부 프로그램 사이에서 정보를 주고 받는 방법 같은걸 말하는데 간단히 사용자 요청에 의한 서버의 응답이라고 보면 됩니다. 그래서 펄은 웹 프로그래밍에 많이 사용한다고 해요. 저는 웹 프로그래밍을 위해 펄에 대한 게시글을 작성할겁니다. 솔직히 PHP, JSP보다 더 불편한 것 같기도 하지만 그런데도 여러모로 장점이 있다고 하네요. 먼저 펄을 설치해봅니..
자바는 모든 문자를 유니코드로 처리한다. 유니코드는 세계 각국의 문자들을 코드값으로 매핑한 국제 표준 규약이다. 유니코드는 하나의 문자에 대해 하나의 코드값을 부여한다. A 및 한글도 하나의 코드 값을 갖는다. 유니코드는 0 ~ 65535 범위의 2byte 크기를 가진 정수 값이다. 그 중 0 ~ 127 까지는 아스키 문자(특수 기호 및 영어 알파벳)가 할당되어 있고 44032 ~ 55203까지는 한글 11172자가 할당되어 있다. 자바는 하나의 유니코드를 저장하기 위해 2byte 크기인 char 타입을 제공한다.char var = 'A'; -> 유니코드 0x0041 -> 2진수 00000000 01000001 이런 식으로. 각 문자에 대해 유니코드 값을 얻으려면 int값으로 받으면 된다.예를 들어cha..
자바 동작 순서는 다음과 같다 1. .java 소스 파일 작성 2. 컴파일러(javac.exe)로 바이트 코드 파일(.class)생성3. JVM 구동 명령어(java.exe)로 실행 즉 동작이자바 소스 파일(.java) - (컴파일러 javac.exe) > 바이트 코드 파일(*.class) -(자바 가상 기계 java.exe)> 기계어 -> 실행
자바는 대표적인 컴퓨터 언어이다. 그 중에서도 객체 지향 언어이다.객체 지향이러는 것은 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고 이거를 하나씩 조립해서 전체 프로그램을 완성하는 기법이다. 자바는 객체를 만들기 위해 클래스를 작성하고 이러한 객체들끼리 서로 연결해 목적에 맞는 프로그램을 만들어 낸다. 자바는 또 함수적 스타일 코딩을 지원한다. 자바 8부터 람다실을 지원해주어 함수적 스타일 코딩을 지원해준다. 또한 메모리를 자동으로 관리하는 특징이 있다. 자바는 객체 생성시 자동적으로 메모리 영역을 찾아서 할당하고 사용이 완료되면 Garbage Collector를 통해 객체를 제거해 주는 등의 메모리 관리를 한다. 그 외에도 JVM을 통해 자바 프로그램을 해석하고 실행할 수 있게 하..