클래스 라이브러리란 자바 코드를 작성하면서 자주사용 여러 유용한 기능들을 모아놓은 클래스 집합을 클래스 라이브러리라고 합니다. JDK 클래스 라이브러리 JDK 는 Java Developer Kit 의 약자입니다. 표준 개발 환경인 클래스 라이브러리라 불리는 클래스 라이브러리를 모아놓은 킷 입니다. 예를들면 키보드로 입력받는 클래스, 변수 등의 기능을 가지고 있습니다. 클래스 라이브러리를 사용하기 위해서는 import 로 어떤 클래스를 사용하겠다 라는 것을 명시해 주어야 합니다. 클래스 라이브러리를 import 했으면 해당 클래스에서 지원하는 함수를 사용할 수 있습니다. 클래스를 사용하는 프로그램을 만드는 방법 1. 클래스를 설계하는 코드를 작성 클래스를 선언한다. 2. 클래스를 이용하는 코드를 작성한다...
Computer Language/JAVA
클래스의 멤버 기본 구성 필드 ( 클래스 변수 ) 메소드 ( 클래스 메소드 ) 생성자 인스턴스 변수와 인스턴스 메소드 클래스 멤버는 객체가 생성되고 나서 값을 저장하거나 호출할 수 있습니다. 이러한 멤버는 '인스턴스 변수', '인스턴스 메소드' 라고 부릅니다. 즉, 인스턴스 변수와 인스턴스 메소드는 클래스 객체를 생성하고 나서 사용할 수 있다는 의미입니다. 그러나 객체에 연결되지 않은 멤버를 가질 수도 있습니다. 이러한 변수와 메소드는 '클래스 변수', '클래스 메소드' 라고 부를 수 있습니다. 클래스 변수와 클래스 메소드 클래스 변수 : 클래스 전체와 연결된 필드 클래스 메소드 : 클래스 전체와 연결된 메소드 클래스 변수와 메소드를 선언할 때는 static 의 제한자를 붙여야 합니다. 1 2 3 4 5..
생성자의 개념 생성자의 이름은 반드시 클래스의 이름과 같아야 합니다. 생성자는 클래스의 객체가 생성될 때, 생성자 안의 코드가 자동으로 실행됩니다. 메소드와 다르게 생성자는 자유롭게 호출할 수 없습니다. 때문에 생성자는 객체의 멤버에 자동으로 초기 값을 설정하는 용도로 사용하는 것이 일반적입니다. 생성자는 리턴 값이 없습니다. 생성자 사용방법 C_constructor 객체를 생성하였습니다. 아무런 함수를 호출하지 않았지만, 객체가 생성되면서 생성자 함수가 호출되었습니다. 이렇게 생성자는 private 의 기본값을 설정하는 대에 사용할 수 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public class Constructor { public ..
오버로딩의 원리 클래스는 같은 이름의 메소드를 2개 이상 정의할 수 있는 기능을 제공합니다. 이렇게 같은 이름을 가지는 메소드 여러개를 같은 클래스에 정의할 수 있는 기능을 오버로딩 이라고 합니다. 오버로딩 주의점 메소드를 오버로딩 하기 위해서는 메소드 인수의 타입 혹은 갯수가 달라야 합니다. 오버로딩 사용방법 C_overloading 클래스에 타입 혹은 갯수가 다른 동일한 함수명을 지정하였습니다. 이렇게 지정하면, 호출되는 값과 일치하는 함수로 실행됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 package Chapter9; public class Overloading { publ..
Private 와 Public 의 차이 Private 멤버는 class 외부에서 접근할 수 없는 변수를 Public 멤버는 class 외부에서 접근할 수 있는 변수를 의미합니다. 이 말이 어떤내용을 의미하는지는 아래에서 설명드리겠습니다. Public 멤버일 때의 문제점 Car 클래스 fuel 은 Public 멤버로 선언이 되어 있습니다. 위에서도 설명드렸다시피, Public 멤버는 class 외부에서 값을 직접 바라볼 수 있다는 점입니다. 따라서 자동차의 연료는 음수가 될 수 없는데도, 음수를 직접 대입하여 설정할 수 있습니다. 클래스는 '사물' 과 '특성' 에 보다 근접한 코드를 만들기 위해 설계됩니다. 그러므로 예외에 대한 처리를 해야 할 필요가 있습니다. 왜냐하면 예외처리를 클래스 외부에서 하는 경..
객체 지향 프로그램 SET, GET 메소드에서 갑자기 왠 객체 지향 프로그램이냐구요? 모든 프로그램이 그렇겠지만 외부로부터 변수값에 직접적으로 접근하는 것을 막고있습니다. 직접 접근하게 되면 무결성이 깨질 수 있기 때문입니다. 자바에서는 함수를 통해 값을 전달받고, 전달하고 방식을 권장하고 있습니다. 또한 클래스 내에서 변수는 private(캡슐화, 정보은닉)로 선언하여 외부에서 바라볼 수 없도록 해야 합니다. 아래에서 사용하는 방법과, 왜 사용을 해야하는지에 대해 알아보겠습니다. SET, GET 메소드를 사용하는 방법 클래스 내에 SET, GET 메소드를 선언합니다. SET 은 변수값을 할당하는 목적의 함수이기 때문에 인자를 받아야 하고 GET 은 변수값을 반환하는 목적이기 때문에 return 이 필요..
전 포스팅에서 클래스선언 / 클래스객체 생성 / 클래스변수 조회를 다뤄봤습니다. 클래스 변수에 값을 대입할 수 없으면 여러개의 객체에서 하나의 값만 조회할 수밖에 없습니다. 이번에는 클래스변수에 값을 대입하여 객체별로 서로 다른 변수를 사용하도록 해보려고 합니다. 클래스 변수에 값을 대입하기 위해서는, 생성한 객체에서 변수값을 입력해 주면 됩니다. 생성한 객체가 2개라면 같은 변수라고 하더라도 객체별로 다른 값을 사용할 수 있습니다. 메소드 또한 동일합니다. 클래스 내에서 선언한 함수는 객체에서 사용할 수 있습니다. 클래스 변수에 값 할당, 클래스 메소드 호출하는 코드 클래스 메소드 호출방법 1. 메소드를 호출하는 부분의 코드가 실행됩니다. 2. 메소드 내부로 흐름이 옮겨가고 메소드 내부의 코드가 실행됩..
클래스란 클래스는 프로그램을 효율적으로 작성하도록 도와주는 개념입니다. 모든 자바 소스는 클래스를 포함하고 있고, 반드시 하나 이상의 클래스가 존재해야 합니다. 클래스는 클래스가 표현하는 사물의 일반적인 요소에서 출발하는 것이 좋습니다. 예를들면 자동차의 경우 차량번호와 연료량을 항상 가지고 있어야 합니다. 이렇게 자동차의 특성과 기능들을 정리하여 하나의 클래스로 묶어서 표현할 수 있습니다. '차량 번호는 ㅇㅇㅇ입니다.' '남은 연료량은 ㅇㅇ입니다.' 1 2 3 4 5 6 7 8 9 class 자동차 { 차량번호; 남은연료량; 차량번호결정하기; 연료를 넣기; 차량번호와 남은연료 양을 표시하기 } cs 클래스 선언하기 물건의 상태 특성, 기능을 정리한 클래스를 작성하는 작업을 '클래스 선언' 이라고 합니다..
배열을 사용한 변수에서 크기 순으로 값을 정렬해 봅니다. 배열에는 여러 가지 정렬되지 않은 값을 저장할 수 있는데, 이럴 때 정렬을 사용하여 값을 순차적으로 표현하여 가독성을 높일 수 있습니다. ( 참고로 배열을 정렬하는 방법은 선택정렬, 버블정렬, 삽입정렬, 퀵정렬 등 여러가지가 있습니다. ) 예시로 학생이름순으로 성적을 입력 후, 성적을 내림차순 정렬하여 표현할 수 있습니다. 배열 정렬 방법 아래 코드는 선택정렬 방법입니다. 1. 배열의 각 요소를 배열의 첫 번째 요소(test[0])와 비교합니다. 비교한 요소가 배열의 첫 번째 요소보다 큰 경우, 첫번째 요소와 비교한 요소의 값을 교환 합니다. 이렇게 되면 배열의 첫 번째 요소에 최대 값을 저장할 수 있습니다. 2. 두 번째 배열요소부터 두 번째 요..
자바 배열변수에 배열변수 값을 대입하는 경우 선언된 배열변수를 새로운 배열변수에 = 기호를 사용하여 대입하는 경우 새로운 배열변수도 기존 배열변수와 같은값이 할당됩니다. 일반 변수라면, 기존의 변수 값을 변경해도 새로운 변수 값은 변경되지 않습니다. 그러나 배열변수는 조금 다릅니다. 기존과 새로운 배열변수는 같은 메모리 값을 바라보고 있습니다. 이 말은 하나의 배열변수만 수정해도 다른 배열변수의 값도 변경이 된다는 의미입니다. 자바 배열변수에 값을 대입하는 경우 예제 test2 배열변수에 test 배열변수 값을 할당합니다. 이제 test 와 test2 배열변수는 같은 메모리에 할당된 값을 바라보게 됩니다. 따라서 test 배열변수의 값을 변경해도, test2 배열변수의 값을 변경해도 모든 배열변수의 값이..