자바 프로그래밍 객체지향 개념 요약 (코드 포함)
1. 패키지 개념과 필요성
자바에서 패키지는 클래스와 인터페이스를 묶어주는 그룹입니다. 여러 사람이 협력하여 자바 프로그램을 개발할 때, 동일한 이름의 클래스가 존재할 가능성이 있기 때문에 패키지를 사용하여 충돌을 방지할 수 있습니다. 패키지를 사용하면 관련된 클래스 파일을 계층화하여 관리할 수 있으며, 패키지별 접근 권한을 설정할 수 있습니다.
코드 예시:
package com.example.myapp; // 패키지 선언
public class MyClass {
// 클래스 내용
}
2. Object 클래스
Object 클래스는 자바의 모든 클래스의 최상위 슈퍼클래스입니다. 모든 자바 클래스는 Object 클래스를 상속받으며, 기본적으로 상속되는 메소드들(toString(), equals(), hashCode() 등)을 포함하고 있습니다.
Object 클래스 사용 예시:
class Point {
private int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "Point(" + x + ", " + y + ")";
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Point point = (Point) obj;
return x == point.x && y == point.y;
}
@Override
public int hashCode() {
return Objects.hash(x, y);
}
}
public class ObjectPropertyEx {
public static void main(String[] args) {
Point p1 = new Point(2, 3);
Point p2 = new Point(2, 3);
System.out.println(p1.toString()); // Point(2, 3)
System.out.println(p1.equals(p2)); // true
}
}
3. Wrapper 클래스
자바에서는 기본 타입(예: int, char)을 객체로 다루기 위해 Wrapper 클래스를 제공합니다. 이 클래스들은 기본 타입의 값을 객체로 변환하거나, 객체에서 기본 타입 값을 추출하는 등의 기능을 수행합니다.
Wrapper 클래스 사용 예시:
public class WrapperEx {
public static void main(String[] args) {
Integer i = Integer.valueOf(10);
int ii = i.intValue(); // ii = 10
System.out.println(Integer.parseInt("123")); // 123
System.out.println(Double.parseDouble("3.14")); // 3.14
Boolean b = Boolean.valueOf(true);
System.out.println(b.booleanValue()); // true
}
}
4. String과 StringBuffer 클래스
String 클래스는 불변(immutable) 객체로, 한 번 생성된 문자열은 수정할 수 없습니다. 반면 StringBuffer 클래스는 가변(mutable) 객체로, 문자열을 추가, 삭제, 수정할 수 있습니다.
String과 StringBuffer 사용 예시:
public class StringEx {
public static void main(String[] args) {
String a = "Hello";
String b = "World";
a = a.concat(" ").concat(b); // 문자열 연결
System.out.println(a); // Hello World
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World"); // 문자열 추가
System.out.println(sb.toString()); // Hello World
sb.replace(0, 5, "Hi"); // 문자열 대체
System.out.println(sb.toString()); // Hi World
sb.delete(0, 3); // 문자열 삭제
System.out.println(sb.toString()); // World
}
}
5. StringTokenizer 클래스
StringTokenizer 클래스는 문자열을 특정 구분자를 기준으로 나누어 여러 개의 토큰으로 분리하는 데 사용됩니다.
StringTokenizer 사용 예시:
import java.util.StringTokenizer;
public class StringTokenizerEx {
public static void main(String[] args) {
StringTokenizer st = new StringTokenizer("Java/Python/C++", "/");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
}
출력:
Java
Python
C++
6. Math 클래스
Math 클래스는 수학적인 연산을 수행할 수 있는 다양한 메소드를 제공합니다. 난수 생성, 삼각 함수, 로그, 제곱근 등의 기능을 포함하고 있습니다.
Math 클래스 사용 예시:
public class MathEx {
public static void main(String[] args) {
System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.sqrt(9)); // 3.0
System.out.println(Math.random()); // 0.0과 1.0 사이의 난수
}
}
7. Calendar 클래스
Calendar 클래스는 날짜와 시간을 관리하는 데 사용됩니다. Calendar 객체를 사용하여 날짜와 시간을 설정하거나 현재 날짜와 시간을 확인할 수 있습니다.
Calendar 클래스 사용 예시:
import java.util.Calendar;
public class CalendarEx {
public static void main(String[] args) {
Calendar now = Calendar.getInstance();
System.out.println("현재 시간: " + now.getTime());
Calendar future = Calendar.getInstance();
future.set(2024, Calendar.DECEMBER, 25, 10, 30);
System.out.println("미래의 시간: " + future.getTime());
}
}
출력:
현재 시간: Sun Aug 18 12:34:56 KST 2024
미래의 시간: Wed Dec 25 10:30:00 KST 2024
끝
'Java' 카테고리의 다른 글
명품자바 프로그래밍의 기초: 8장 (0) | 2024.09.02 |
---|---|
명품자바 프로그래밍의 기초: 7장 (0) | 2024.08.25 |
명품자바 프로그래밍의 기초: 5장 (0) | 2024.08.14 |
명품자바 프로그래밍의 기초: 4장 (0) | 2024.08.14 |
명품자바 프로그래밍의 기초: 3장 (0) | 2024.08.13 |