카테고리 없음2024. 7. 12. 00:57객체지향 프로그래밍의 4가지 요소(4) 추상화

Java는 객체 지향 프로그래밍(OOP) 언어로, OOP의 4가지 주요 요소인 추상화, 캡슐화, 다형성, 상속성을 중심으로 설계되었다. 이 글에서는 마지막으로 추상화(Abstraction)에 대해 알아보자. 추상화(Abstraction)란?잡한 시스템에서 핵심적인 부분만을 모델링하여 단순화하는 과정이다. 이를 통해 불필요한 세부 사항을 숨기고 중요한 부분만을 강조함으로써 복잡성을 줄이고, 코드를 이해하고 관리하기 쉽게 만든다. 추상화는 주로 추상 클래스(Abstract Class)와 인터페이스(Interface)를 통해 구현된다. 추상 클래스(Abstract Class)추상 클래스는 하나 이상의 추상 메소드(Abstract Method)를 포함하는 클래스다. 추상 메소드는 구현이 없는 메소드 선언부만을 ..

개발/java2024. 7. 12. 00:34객체지향 프로그래밍의 4가지 요소(3) 다형성

Java는 객체 지향 프로그래밍(OOP) 언어로, OOP의 4가지 주요 요소인 추상화, 캡슐화, 다형성, 상속성을 중심으로 설계되었다. 이 글에서는 그 중 다형성(Polymorphism)에 대해 알아보자. 다형성(Polymorphism)이란?다형성이란 하나의 이름을 가진 변수, 함수, 클래스가 다양한 의미로 해석 될 수 있도록 구현하는 것을 말한다. 다형성은 코드의 유연성과 재사용성을 높여주며, 프로그램의 유지보수를 쉽게 만든다. 다형성은 주로 메소드 오버라이딩(Method Overriding)과 메소드 오버로딩(Method Overloading), 상속의 계층관계 활용 등을 통해 구현된다. 다형성 실현 방법 - 메소드 오버로딩과 오버라이딩메서드 오버로딩을 이용해 동일한 이름의 메서드를 여러 개 정의하여..

개발/java2024. 7. 11. 19:02객체지향 프로그래밍의 4가지 요소(2) 캡슐화

Java는 객체 지향 프로그래밍(OOP) 언어로, OOP의 4가지 주요 요소인 추상화, 캡슐화, 다형성, 상속성을 중심으로 설계되었다. 이 글에서는 그 중 캡슐화(Encapsulation)**에 대해 자세히 알아보자. 캡슐화(Encapsulation)란?객체의 상태(데이터)를 보호하고 외부에서 직접 접근하지 못하도록 제어하는 방법이다. 이를 통해 데이터의 무결성을 유지하고, 객체의 내부 구현을 숨겨 외부와의 인터페이스를 명확히 한다. 캡슐화는 주로 접근 제어자를 사용하여 구현된다. 접근 제어자접근 제어자는 클래스, 메소드, 변수 등의 접근 범위를 제한하는 키워드다. 자세한 내용을 아래 글에 정리되어있다.https://for-habit.tistory.com/18 Java의 접근 제어자Java에서 접근 제어..

카테고리 없음2024. 7. 11. 16:56Java의 메소드 오버로딩과 메소드 오버라이딩

Java에서 메소드 오버로딩과 메소드 오버라이딩은 다형성을 구현하는 중요한 개념으로  이 글에서는 메소드 오버로딩과 메소드 오버라이딩의 차이점과 사용법을 알아보자. 메소드 오버로딩(Method Overloading)메소드 오버로딩은 같은 클래스 내에서 동일한 이름의 메소드를 여러 개 정의하는 것을 말한다. 단, 각 메소드는 매개변수의 타입, 개수, 순서가 달라야 한다. 메소드 오버로딩을 통해 코드의 가독성과 재사용성을 높일 수 있다.특징같은 클래스 내에서 메소드 이름이 동일하다.매개변수의 타입, 개수, 순서가 달라야 한다.반환 타입이 다르더라도 매개변수가 동일하면 오버로딩이 성립하지 않는다.객체 지향 요소와의 연계: 다형성메소드 오버로딩은 다형성을 구현한다. 동일한 메소드 이름으로 다양한 기능을 제공하여..

카테고리 없음2024. 7. 11. 16:06객체지향 프로그래밍의 4가지 요소(1) 상속

Java는 객체 지향 프로그래밍(OOP) 언어로, OOP의 4가지 주요 요소인 추상화, 캡슐화, 다형성, 상속성을 중심으로 설계되었다. 이 글에서는 그 중에서도 **상속성(Inheritance)**에 대해 자세히 설명한다 상속(Inheritance) 이란? 상속(Inheritance)이란 기존에 존재하던 클래스의 멤버 변수와 메서드를 그대로 물려받아, 멤버 변수 및 메서드를 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다상속성의 주요 특징재사용성: 기존 클래스의 코드를 재사용함으로써 새로운 클래스를 작성하는 데 드는 시간을 절약할 수 있다.계층 구조: 클래스 간의 계층 구조를 통해 시스템을 보다 체계적으로 설계할 수 있다.유지보수성: 공통된 기능을 부모 클래스에 두고, 변경이 필요할 경우 한..

개발/java2024. 7. 11. 14:24Java의 주요 키워드: this, static, super, final

Java는 객체 지향 프로그래밍 언어로, 다양한 키워드를 통해 코드를 구조화하고 관리한다. 이 글에서는 그동안 헷갈렸던  this, this(), static, super, super() 키워드에 대해 예시를 통해 정리해보겠습니다. 1. this 키워드this 키워드는 자기 자신의 객체를 참조하는 변수다. 주로 클래스 내에서 인스턴스 변수와 메서드를 호출할 때 사용된다. this 키워드는 현재 객체를 가리키며, 동일한 클래스 내의 다른 메서드를 호출하거나 인스턴스 변수를 사용할 때 유용하다.public class Example { private int value; public Example(int value) { this.value = value; // 인스턴스 변수와 파라미터를 ..

Localtime 클래스 Java 공식 문서를 통한 클래스에 대한 이해
개발/java2024. 7. 10. 11:57Localtime 클래스 Java 공식 문서를 통한 클래스에 대한 이해

Localtime 클래스 공식 문서 예시를 통해 이전까지 헷갈렸던 접근제어자, static 키워드,private 생성자에 대한 이해도 함께한다. LocalTime 클래스란?LocalTime 클래스는 java.time 패키지에 포함되어 있으며, 날짜 정보 없이 시간 정보만을 관리합니다. 이 클래스는 생성된 이후 변경할 수 없는 불변(immutable) 클래스(final)이다.  LocalTime 클래스는 시, 분, 초, 나노초를 나타내며, 다양한 시간 연산을 지원하며 모든 연산은 새로운 LocalTime 객체를 반환하게 된다. 1. LocalTime 객체 생성* Java 공식문서에 생성자가 쓰여있지 않다면?1. localtime 은 공식 문서에 생성자가 쓰여 있지 않다. 이건 어떤 의미일까? 이 말은 Lo..

백준과 gihub 자동화(백준허브)
카테고리 없음2024. 7. 2. 15:02백준과 gihub 자동화(백준허브)

백준문제를 풀고 github에 올리는 것이 여러 모로 도움이 될 거란 걸 알았으나 항상 귀찮아서 문제만 풀고 github에 한꺼번에 올려야지란 생각만 한 채 올리지 않는 경우가 대부분이었다. 이를 해결하기 위해 백준허브라는 플러그인을 사용해보자. 나아가 Readme 파일도 자동으로 업로드되도록 만들었다. 백준허브 플러그인 크롬 확장프로그램으로 백준허브 프로그램이 있었다. 해당 플로그인을 크롬에 추가하고 사용하면 백준에서 문제를 제출할 때 자동적으로 github에 내가 작성한 소스코드가 올라가게 된다. 설치 후 사용 방법은 개발자님이 작성해두신 사용방법을 보고 따라했다.https://velog.io/@flaxinger/%EB%B0%B1%EC%A4%80%ED%97%88%EB%B8%8C-%EC%82%AC%EC..

image