본문 바로가기

자바52

[Java] 추상 키워드 abstract 자바(Java)에서는 'abstract'라는 키워드가 있다. 이 키워드는 클래스, 메서드 또는 인터페이스를 선언할 때 사용하는 키워드 중 하나이다. 이번 포스팅에서는 'abstract' 키워드에 대해서 알아보자. 추상 클래스 Abstract Class 추상 클래스는 다른 클래스들이 상속받아 확장할 수 있는 가장 베이스 클래스다. 추상 클래스는 일반 클래스와는 다르게 'abstract' 키워드를 사용하여 선언된다. 추상 클래스는 추상 메서드를 포함할 수 있으며, 추상 메서드는 메서드의 선언만 있고 구현은 없는 메서드다. 추상 클래스를 사용하는 주된 목적은 다른 클래스가 해당 클래스를 상속받아 필요한 메서드를 구현하도록 하기 위함이다. abstract class Shape { abstract void dra.. 2023. 9. 15.
[Java] 업캐스팅 (Upcasting)과 다운캐스팅 (Downcasting) 자바에서 객체 지향 프로그래밍을 하다 보면 아주 빈번하게 사용하는 부분이 있다. 클래스 간의 관계를 설명하기 위해서 사용되는 개념이 바로 업캐스팅(Upcasting)과 다운캐스팅(Downcasting)이다. 이번 포스팅에서는 이 두 용어에 대해서 알아보자. 업캐스팅 Upcasting 업캐스팅은 부모 클래스 타입의 참조 변수로 자식 클래스의 객체를 참조할 수 있게 해주는 개념을 말한다. 즉, 자식 클래스의 객체를 부모 클래스의 참조 변수로 변환해서 사용하는 것을 의미한다. 업캐스팅은 자동으로 이루어진다. 아래는 간단한 예이다. class Animal { } class Dog extends Animal { } Animal animal = new Dog(); // 업캐스팅 위 코드에서 'Dog' 클래스는 'A.. 2023. 9. 14.
[Java] Object 클래스의 toString(), hashCode() 메서드 이번 포스팅은 약간 번외로 알고 가면 좋을 내용이다. 자바로 프로그래밍을 하다 보면 가끔씩 보이는 @Override 애노테이션이 있고 이 오버라이드 애노테이션이 붙은 메서드가 있다. 바로 'toString()', 'hashCode()' 메서드이다. 이번 포스팅에서는 이 메서드에 대해서 간단하게 알아보자. Object 클래스의 오버라이드 메서드 자바에서는 'Object' 클래스가 있다. 이 클래스는 자바의 클래스 계층 구조에서 최상위에 위치하며, 모든 클래스가 이 클래스로부터 상속을 받는다. 따라서 'Object' 클래스의 메서드와 기능은 모든 자바 객체에서 사용할 수 있다. 'Object' 클래스는 다양한 메서드가 정의되어 있지만 가장 중요한 메서드는 아래와 같다. eqauls(Object obj) 객체.. 2023. 9. 12.
[Java] 메서드 오버라이딩 (Method Overriding) 지난 포스팅에서는 자바(Java)의 상속(Inheritance)에 대해서 알아보았다. 그리고 상속을 하게 되면 자주 사용하는 부분이 바로 메서드 오버라이딩이다. 이번 포스팅에서는 메서드 오버라이딩에 대해서 알아보자. 메서드 오버라이딩 Method Overriding 자바에서 메서드 오버라이딩은 하위 클래스(Subclass)에서 상위 클래스(Superclass)의 메서드를 재정의하는 개념을 나타낸다. 이것은 객체 지향 프로그래밍에서 중요한 개념 중 하나로, 다형성(Polymorphism)을 구현하고 상속(Inheritance) 계층 구조를 활용하는 데 사용된다. 메서드 오버라이딩을 사용하면 다음과 같은 상황에서 유용하다. 다형성 상위 클래스의 참조 변수를 이용하여 하위 클래스의 객체를 다룰 수 있다. 이렇.. 2023. 9. 11.
[Java] 자바에서 사용하는 상속(Inheritance)에 대해 알아보자 자바(Java)에서 상속(Inheritance)은 객체 지향 프로그래밍(OOP)의 중요한 개념 중 하나이다. 대부분의 많은 프레임워크들은 대부분 상속을 사용하고 있다. 그리고 이 개념을 알아야 조금 더 효율적으로 개발이 가능하다. 이번 포스팅에서는 자바에서 사용하는 상속에 대해서 알아보자. 상속 Inheritance 자바의 가장 큰 특징은 재사용이다. 자바는 상속을 통해 하나의 클래스(부모 클래스 또는 슈퍼 클래스)에서 정의된 속성과 메서드를 다른 클래스(자식 클래스 또는 서브 클래스)에서 재사용할 수 있다. 이를 통해서 코드의 재사용성을 증가시키고 클래스 간의 계층 구조를 만들 수 있다. 다음은 자바에서 상속을 사용하는 방법에 대한 간단한 예제이다. // 강아지 클래스 public class Dog {.. 2023. 9. 10.
[Java] 내부에서 사용하는 this 키워드 자바(Java)에서 'this'는 특별한 키워드이다. 클래스 내부에서 사용되며, 주로 인스턴스 변수와 메서드를 구변하거나 현재 객체애 대한 참조를 나타내는 데 사용된다. 이번 포스팅에서는 클래스 내부에서 사용하는 'this' 키워드에 대해서 알아보자. 'this' 키워드 자바에서 'this' 키워드는 클래스 내부에서 사용된다. 현재 객체에 대한 참조, 생성자에서 다른 생성자를 호출, 매개변수와 멤버변수의 이름 충돌 시 사용된다. 하나씩 알아보자. 현재 객체에 대한 참조 'this' 키워드는 현재 객체에 대한 참조를 나타낸다. 클래스 내부에서 'this'를 사용하면 현재 객체를 가리키게 된다. 이를 통해 객체 내부에서 다른 멤버 변수나 메서드를 참조하거나 호출할 수 있다. // 학생 클래스 public c.. 2023. 9. 9.
[Java] 멤버 변수 접근 메서드 Getter, Setter 자바(Java)에서 멤버 변수에 접근하고 값을 변경하기 위해서는 메서드를 사용한다. 그래서 기본적으로 값을 조회하는 메서드를 getter, 값을 변경하는 메서드를 setter라 부른다. 이러한 메서드를 사용하면 클래스 내부의 변수를 캡슐화하고, 외부에서 직접 접근하지 않고 안전하게 데이터를 조작할 수 있다. 'getter'와 'setter'는 자바 빈(JavaBean) 규칙을 따르며, 객체 지향 프로그래밍에서 정보 은닉과 캡슐화를 지원하는 중요한 요소이다. 이번 포스팅에서는 이 'getter', 'setter' 메서드에 대해서 알아보자. 접근 메서드 Getter 'getter' 메서드는 클래스의 인스턴스 변수의 값을 반환하는 메서드이다. 보통 'get' 다음에 변수 이름의 첫 글자를 대문자로 하여 메서드.. 2023. 9. 8.
[Java] 캡슐화 (Encapsulation)란 무엇일까 객체지향 언어에서는 캡슐화라는 말을 사용한다. 캡슐화란 무었일까. 이번 포스티에서는 자바에서 사용하는 캡슐화를 알아보자. 자바의 캡슐화 Encapsulation 객체지향 프로그래밍(OOP)의 개념 중 하나로, 데이터와 해당 데이터를 다루는 메서드들을 하나의 단위로 묶어 정보 은닉과 보안을 강화하는 개념을 자바의 캡슐화라고 한다. 캡슐화는 객체의 내부 상태를 외부로부터 감추고, 외부에서는 오직 공개된 메서드를 통해서만 내부 상태에 접근할 수 있도록 하는 것을 의미한다. 자바에서 캡슐화를 구현하는 방법은 주로 두 가지 요소를 활용하여 이루어진다. private 접근 제한자 멤버 변수를 'private'으로 선언하여 클래스 외부에서 직접 접근할 수 없게 한다. 이로써 내부 데이터에 직접 접근하는 것을 막고, .. 2023. 9. 7.
[Java] 자바의 정적(Static) 변수 사용하기 자바(Java)에서는 클래스를 만들고 내부에 변수를 선언한다. 변수는 접근 제어자를 이용해서 공개하거나 비공개 처리해서 내부에서만 사용할 수 있게 만들 수 있다. 그리고 또 한 가지! 정적 변수가 있다. 이번 포스팅에서는 정적변수에 대해서 알아보자. 정적 변수 Static Variable 자바에서는 정적 'static' 키워드가 있다. 그리고 이 키워드를 붙여서 사용하는 변수가 있다. 이 정적 변수는 클래스 레벨의 변수로, 해당 클래스의 모든 인스턴스가 공유하는 변수를 의미한다. 이 변수는 클래스가 로드될 때 메모리에 할당되며, 클래스의 모든 인스턴스가 해당 변수에 접근할 수 있다. 따라서 'static' 변수는 클래스 내부에서 인스턴스 변수와는 다른 특성을 가지고 있다. 정적 변수의 특징 정적 변수의 .. 2023. 9. 6.