개인 공부 (23.07~ 69

[JAVA] 알고리즘을 위한 자료구조 (알고리즘, 자료구조 무엇인가?)

[Index] ▶ 알고리즘 ▶ 자료구조 ▶ 알고리즘과 자료구조의 관계 알고리즘! 이 단어는 일상생활에서 많이 쓰는 단어이고 설명은 못하더라도 느낌상으로 알고리즘~ 음~ 알 수 있다. 다만 설명하라고 하면.. 그 유튜브에서 알고리즘으로 나한테 적절한 컨텐츠를 보여주잖아~ 그게 알고리즘이지! 라고 할 것이다. 알고리즘에 대해서 쉽게 알고 가자. 컴퓨터가 따라 할 수 있도록 문제를 해결하는 절차나 방법을 자세히 설명하는 과정. 더 풀어서 설명하자면, 인간은 컴퓨터에게 일을 시킨다. 그 일을 시키려면 인간이 먼저 어떻게 풀지 알고 있어야한다. 그럼 인간이 어떻게 문제를 풀 것인지 절차나 방법을 설명하는 과정이 알고리즘인것이다. +추가정보) 알고리즘 중 가장 기본 알고리즘은 무엇일까? '정렬 알고리즘' : 자료구..

[JAVA] 추상클래스는 왜 쓰나요?

추상클래스 추상(부모)클래스는 다른(자식)클래스들의 공통적인 특징을 변수나 메서드로 정의만 해놓은 것. 그래서 왜 쓰나요??? 추상클래스는 부모 클래스로서의 역할은 하지만, 구체적인 사용은 상속받은 자식 클래스에서 오버라이드(재정의)하여 사용해야한다. 즉, 강제성을 나타내기 위해서 사용한다!!! 추상클래스를 상속받은 자식클래스에게 강제로 해당 기능을 넣어줘야할 때 쓰이는 것이다. 자식클래스에서 해당 추상메서드를 구현 안하면 컴파일 오류가 발생한다. 부모를 상속받아서 만들어지는 자식들은 꼭 그 부모가 가진 추상메서드를 구현하라는 강제성이 있는 것이다. + 참고로 추상클래스에서 일반 메서드도 사용가능하다. 만약, 일반 메서드로 구현하면 누군가는 해당 메서드를 구현 안할수도 있다. 상속받은 자식 클래스 입장에..

[JAVA] 메서드 return 을 왜 사용할까?

꼬리에 꼬리에 꼬리에 꼬리를 무는 궁금증. 당연하게 return을 사용하다가 문뜩 궁금해졌다. 간단한 예시를 만들어보면서 왜 return이 필요한거지? 그냥 구현하는 곳에 다 표현해도 되는데...? 라는 생각이 들었다. public class SimpleExample { // 두 정수를 더하여 결과를 반환하는 메서드 public static int add(int a, int b) { int sum = a + b; return sum; // 합을 반환 } public static void main(String[] args) { int num1 = 5; int num2 = 10; // add 메서드 호출하고 반환 값을 변수 result에 저장 int result = add(num1, num2); System..

[디자인 패턴] 위임 패턴, 클래스 상속, 객체 합성 정의 & 예시

[Index] ▷위임패턴, 클래스 상속, 객체 합성 관계 ▷위임 패턴 정의 ▷클래스 상속 정의 ▷객체 합성 정의 ▷위임 패턴 예시 코드 ▷ [위임패턴,클래스 상속, 객체 합성 관계] 객제지향은 재사용이 목적이다!!! 재사용을 함으로 코드 중복을 제거하여 확장을 용이하게 만든다!!! 그래서 나는 재사용을 위해 나온 위임 패턴을 공부해 볼 것이다! 이 위임 패턴을 설명하기 위해서는 클래스 상속과 객체 합성을 알아야하고, 클래스 상속과 객체 합성은 객체 지향 프로그래밍에서 기능의 재사용을 위해 가장 널리 사용되는 코드 재사용 기법이다. 클래스 상속은 의존성 해결 시점이 컴파일단계에서! 객체 합성은 런타임에서! 클래스 상속은 결합도가 높고! 객체 합성은 결합도가 낮다! ▷ [위임 패턴 정의] 위임 패턴(dele..

[JAVA] 다형성은 무엇인가? 객체의 타입 변환 필요성?

[미리보기 Index] ✔️ 객체의 타입 변환의 필요성 (객체는 그냥 하나의 타입으로 계속 사용되면 안될까?!) ✔️ 다형성이란?? ✔️ 다형성이라는 특성은 오버로딩, 상속, 오버라이딩, 추상화, 형(타입) 변환 모두에서 나타난다. ✔️ 우리가 타입 변환을 어디에 사용할 수 있을지? ✔️ 타입 변환을 사용하면 좋은 점이 무엇인지? ✔️ 객체의 타입 변환의 필요성 (객체는 그냥 하나의 타입으로 계속 사용되면 안될까?!)왜 부모 자식 관계가 있고.. 자식 객체는 부모 타입으로 업캐스팅이 가능하고.. 부모 객체는 자식타입으로 불가능하고.. 다만 부모타입으로 된 자식객체를 다시 자식타입으로 내리는 다운캐스팅은 가능한걸까????... @-@ 이런 타입 변환은 왜 필요한 것일까? 혼란스럽도다......... 흠 생..

[JAVA] 접근 제어자 4가지 특징(개념), 예시

자바에서 접근제어자는 클래스, 메서드, 인스턴스 및 클래스 변수를 선언할 때 사용한다. 총 4가지 종류가 있다. 접근 제어자 의미 public 누구나 접근 가능 protected 같은 패키지 내에 있거나 상속받은 경우에만 접근 가능 (default) = 접근제어자 없음 같은 패키지 내에 있을 때만 접근 가능 (아무런 접근 제어자를 적어주지 않을 때.) private 해당 클래스 내에서만 접근 가능 이렇게 4가지가 있다는 것을 간단히 알았고, 예제를 통해 이해해보았다. public, private은 많이 봐왔고 익히 알고 있었지만 protected, (default)의 접근 제어자를 써본 적도, 많이 본 적도 없기 때문에 참고한 블로그를 통해 직접 코드를 쳐보며 이해해보았다. 그리고 이번 기회에 코드를 치..

클래스다이어그램을 활용한 설계

UML로 설계하는 방법 중 정말 유용한 방법이 클래스다이어그램을 그리는 것이라고 한다. 오늘은 클래스 하나를 가지고 필드와 메서드를 계획하는 클래스다이어그램을 만들어보았다. 나는 관광, 호텔, 여행쪽에 관심이 많아서 스스로 가장 그려보고 싶었던 설계이다. 그래서 제일 먼저 생각나는 관광객이라는 클래스를 그려보았다. 내가 추후에 이 클래스를 활용하여 객체를 만든다는 생각을 하며 만들었는데 음... 사실 수정하고 싶은 부분이 계속 생긴다ㅋㅋ 설계도는 프로젝트하면서 계속 고쳐나가는 것이라고! 절대 예쁜 액자에 보관하는 것이 아니라고! 배웠으니ㅎㅎ 수정하면서 나아가는 걸로 하겠다!!!!! 관광객을 생각하며 이것저것 넣었는데 접근제한자는 어떻게 설정하는 게 좋을지, 어떤 값을 리턴을 해야할지, 매개변수는 뭐를 넣..

JAVA 기본 자료형 - 정수형 char, 예시

Java 언어에서 변수의 타입을 정하는 것은 크게 두 분류로 나뉜다. 기본 자료형 / 참조 자료형 기본 자료형은 다양하게 있지만 자주 쓰는 것들은 int, char, double, boolean이 아닐까싶다. 그 중 char는 캐릭터라고 읽고... 홑따옴표(' ')를 사용한다... 이렇게만 알고 있어서 char에 대해 조금 더 찾아보았다. 문자를 저장하는 기본 자료형 char 는 정체가 뭘까? 기본 자료형은 숫자와 boolean으로 나뉘고, 숫자는 정수형과 소수형으로 나뉜다. 기본자료형 숫자 정수형 소수형 boolean 그리고 문자를 저장하는 char가 정수형에 해당한다고 한다. 엥 그럼 숫자를 저장하는 것인가?!?!!? 그렇다고한다! char의 값을 지정하는 방법은 크게 세가지이다. 1) 홑따옴표 안에..