어떤 하나의 특정한 기능을 하는 클래스들의 묶음을 라이브러리 형태로 가지고 있고 이 라이브러리를 활용하여 프로그램을 개발할 수 있다.
그런데 라이브러리를 활용하는 측면에서 라이브러리를 구성하는 모든 클래스의 기능을 파악하고 활용하기란 쉬운일이 아니다. 그리고 라이브러리 안에 모든 클래스가 다 중요하지만은 않다. 때문에 외부에서 접근할 수 있는 메인 클래스, 즉 출입할 수 있는 클래스를 메인으로 디자인 하여 그 메인 클래스만을 활용함으로써 라이브러리의 모든 기능을 구현할 수 있도록 되어있다. 그 메인 클래스에 public 키워드를 붙여 놓음으로써 언제든지 외부에서 특정한 라이브러리의 기능을 활용할 수 있는 것이다.
그리고 메인 클래스를 제외한 나머지 클래스들은 default로 만들어 관계된 클래스끼리의 호출이 가능하고 외부에서는 접근을 하지 못하게 해 놓는 것이다. 이것이 객체지향 패러다임에 굉장히 중요하고 왜 객체지향을 선호하는지의 중요한 이유 중 하나일 것이다.
2013년 1월 6일 일요일
[Java] 클래스 패스와 패키지
각각 따로 만들어진 클래스의 이름이 같은 경우가 발생했을 때 이 클래스간의 구별이 필요하게 된다. 따라서 패키지라는 개념이 등장하게 되는 것이다.
인스턴스 생성시 디렉토리에 따라 이름이 같은 클래스라 할지라도 구분할 수가 있게 된다.
이런 패키지의 개념 이전에 먼저 고려해야 할 것이 바로 클래스 패스이다.
클래스 패스는 보통 자바를 설치하고 환경변수를 지정하면서 설정하게 되는데 이렇게 해놓게 되면 자바를 공부하는 데에는 문제가 없지만 실무에서 많은 컴퓨터 시스템에 자바실행 환경을 설정할 때에 여간 번거로운 작업이 아닐수 없다.
따라서 명령 프롬프트 창에서 클래스패스를 설정하고 배치파일을 유포하는 것이 훨씬 수월하다.
클래스 패스를 설정한 디렉토리는 시작을 나타내는 디렉토리 경로를 의미하게 되고 그 경로 안에 패키지를 설정해 줌으로써 클래스간의 구별이 가능해 질 뿐만 아니라 JVM이 클래스 패스를 이용하여 필요한 클래스를 찾아갈 수 있도록 해준다,
인스턴스 생성시 디렉토리에 따라 이름이 같은 클래스라 할지라도 구분할 수가 있게 된다.
이런 패키지의 개념 이전에 먼저 고려해야 할 것이 바로 클래스 패스이다.
클래스 패스는 보통 자바를 설치하고 환경변수를 지정하면서 설정하게 되는데 이렇게 해놓게 되면 자바를 공부하는 데에는 문제가 없지만 실무에서 많은 컴퓨터 시스템에 자바실행 환경을 설정할 때에 여간 번거로운 작업이 아닐수 없다.
따라서 명령 프롬프트 창에서 클래스패스를 설정하고 배치파일을 유포하는 것이 훨씬 수월하다.
클래스 패스를 설정한 디렉토리는 시작을 나타내는 디렉토리 경로를 의미하게 되고 그 경로 안에 패키지를 설정해 줌으로써 클래스간의 구별이 가능해 질 뿐만 아니라 JVM이 클래스 패스를 이용하여 필요한 클래스를 찾아갈 수 있도록 해준다,
2013년 1월 2일 수요일
[Java] 프로그램의 기본
자바 뿐만 아니라 보통의 프로그램이란 것은 가장 작은 단위로 변수와 함수로 이루어져 있다.
하지만 자바에서는 변수를 필드라고 말하기도 하고 함수를 메소드라 부른다. 이러한 소소한 차이 말고는 프로그램을 구성하는데 큰 차이점은 없다.
그러나 자바가 추구하는 객체지향이라는 개념이 좀 더 코드의 재사용과 확장성에 큰 도움을 준다.
다시말해 변수와 메소드가 하나의 객체를 구성하는데 이 객체를 가지고 갖가지 기능을 사용할 수 있다. 그러나 그 객체는 클래스라는 것을 통해 목적에 맞게 생성하여 사용할 수 있다. 따라서 규모가 큰 프로그램의 경우 클래스를 프로그램의 가장 작은 프로그램 구성요소라고 한다.
그러한 클래스들의 집합을 패키지라고 부르며 관련된 기능들의 집합들을 모아놓은 것이라 생각된다. 마지막으로 이러한 각각의 관련 기능들의 집합인 패키지가 더해지고 합쳐져서 하나의 어플리케이션이 된다.
---------------------------------------------------------------------------------
여기까지가 단지 클래스의 개념만 조금 아는 내가 설명을 듣고 정리해본 것이다. 이 생각이 옳을지 아닐지는 더 배워 나가야 할 것이다. 열심히 하자. 아자.
하지만 자바에서는 변수를 필드라고 말하기도 하고 함수를 메소드라 부른다. 이러한 소소한 차이 말고는 프로그램을 구성하는데 큰 차이점은 없다.
그러나 자바가 추구하는 객체지향이라는 개념이 좀 더 코드의 재사용과 확장성에 큰 도움을 준다.
다시말해 변수와 메소드가 하나의 객체를 구성하는데 이 객체를 가지고 갖가지 기능을 사용할 수 있다. 그러나 그 객체는 클래스라는 것을 통해 목적에 맞게 생성하여 사용할 수 있다. 따라서 규모가 큰 프로그램의 경우 클래스를 프로그램의 가장 작은 프로그램 구성요소라고 한다.
그러한 클래스들의 집합을 패키지라고 부르며 관련된 기능들의 집합들을 모아놓은 것이라 생각된다. 마지막으로 이러한 각각의 관련 기능들의 집합인 패키지가 더해지고 합쳐져서 하나의 어플리케이션이 된다.
---------------------------------------------------------------------------------
여기까지가 단지 클래스의 개념만 조금 아는 내가 설명을 듣고 정리해본 것이다. 이 생각이 옳을지 아닐지는 더 배워 나가야 할 것이다. 열심히 하자. 아자.
[Java] 향상된 for문
배열을 사용할 때 사용가능한 for문이다.
int arr[] = {1,2,3,4,5};
for(int num : arr){
System.out.println(num);
}
이렇게 하면 배열에 저장된 정수 하나하나를 출력할 수 있다. 즉 굳이 배열의 범위를 명시하지 않아도 알아서 배열의 길이만큼 데이터 관리가 가능하다. 주의할 점은 int형 배열이라면 int형 변수를 for문 조건에 적용해야한다.
int arr[] = {1,2,3,4,5};
for(int num : arr){
System.out.println(num);
}
이렇게 하면 배열에 저장된 정수 하나하나를 출력할 수 있다. 즉 굳이 배열의 범위를 명시하지 않아도 알아서 배열의 길이만큼 데이터 관리가 가능하다. 주의할 점은 int형 배열이라면 int형 변수를 for문 조건에 적용해야한다.
2013년 1월 1일 화요일
[Java] 배열
여러개의 동일한 데이터 형 변수들의 집합
java.lang.ArrayIndexOutOfBoundsException
과 같은 에러가 나타나면 배열의 범위를 넘어서 메모리에 값을 읽거나 저장하려 했다고 경고하는 에러창이다.
상수를 가지고 다양한 값을 이용하여 프로그래밍하기 위해 변수라는 것이 생겼고 그 변수를 여러개 이용하여 많은 데이터를 관리하기 위해 배열이 생겨났다.
그리고 그 배열이 가지고 있는 한계(동일자료형의 데이터만 관리)를 극복하기 위해 객체라는 개념이 생겼고 그 객체를 잘 관리하기 위해 자료구조가 생겨나는 것이다.
java.lang.ArrayIndexOutOfBoundsException
과 같은 에러가 나타나면 배열의 범위를 넘어서 메모리에 값을 읽거나 저장하려 했다고 경고하는 에러창이다.
상수를 가지고 다양한 값을 이용하여 프로그래밍하기 위해 변수라는 것이 생겼고 그 변수를 여러개 이용하여 많은 데이터를 관리하기 위해 배열이 생겨났다.
그리고 그 배열이 가지고 있는 한계(동일자료형의 데이터만 관리)를 극복하기 위해 객체라는 개념이 생겼고 그 객체를 잘 관리하기 위해 자료구조가 생겨나는 것이다.
[Java] 중첩된 반복문 break, continue
for문에는 for문의 이름을 붙여 줄 수 있는 라벨이라는 개념이 존재한다.
따라서 라벨의 이름의 for문을 break, continue하면 해당하는 for문에 대한 적절한 처리가 가능하다.
public class Exam04 {
public static void main(String[] args) {
outerLoop:
for(int row=0; row<3; row++){
for(int col=0; col<5; col++){
System.out.println(row + "," + col);
if((row==1)&&(col==3))
break outerLoop;
}
}
}
}
따라서 라벨의 이름의 for문을 break, continue하면 해당하는 for문에 대한 적절한 처리가 가능하다.
public class Exam04 {
public static void main(String[] args) {
outerLoop:
for(int row=0; row<3; row++){
for(int col=0; col<5; col++){
System.out.println(row + "," + col);
if((row==1)&&(col==3))
break outerLoop;
}
}
}
}
[Java] 조건문과 반복문
조건문과 반복문이 어떻게 구성되어 있는지에 관해서는 쓰지 않겠다. 다만 왜? 무엇때문에 쓰는지 그 이유에 대해 설명할 수 있어야 하겠다.
조건문은 조건에 따라서 실행되어야 할 부분과 실행되지 않아야 하는 로직을 구성하기 위해 사용되며 if, if~else, switch 문이 있다.
반복문은 해야할 일이 많을 때 사용하며 while, do~while, for 문이 있다.
조건문은 조건에 따라서 실행되어야 할 부분과 실행되지 않아야 하는 로직을 구성하기 위해 사용되며 if, if~else, switch 문이 있다.
반복문은 해야할 일이 많을 때 사용하며 while, do~while, for 문이 있다.
피드 구독하기:
글 (Atom)