공부 STUDY/JAVA

    [JAVA] 인터페이스(interface)

    [JAVA] 인터페이스(interface)

    인터페이스는 클라이언트 프로그램에 어떤 메서드를 제공하는지 미리 알려주는 명세 또는 약속의 역할을 한다. 예를들어, Abc 인터페이스를 구현한 A 클래스가 있다고 가정하자. 이 인터페이스에는 구현할 추상 메서드가 모두 선언되어 있고, 어떤 매개변수가 사용되는지, 어떤 자료형 값이 반환되는지 선언되어 있다. 즉, Z프로그램에서 A 클래스의 구현 코드 전체를 살펴보지 않고도 A 클래스를 어떻게 사용하는지 알 수 있다는 것이다. 인터페이스를 구현하면 다형성을 구현하여 확장성 있는 프로그램을 만들 수 있다. 즉, 클라이언트 프로그램을 많이 수정하지 않고 기능을 추가하거나 다른 기능을 추가할 수 있다. 인터페이스(Interface)란? 자바에서 인터페이스는 클래스들이 필수로 구현해야 하는 추상 자료형이다. 객체의..

    [JAVA] 다운캐스팅 (DownCasting)

    [JAVA] 다운캐스팅 (DownCasting)

    다운 캐스팅(DownCasting) 다운캐스팅은 거꾸로 부모 클래스가 자식 클래스 타입으로 캐스팅 되는 것이다. 다운캐스팅은 캐스팅 연산자 괄호를 생략할 수 없다 다운캐스팅의 목적은 업캐스팅한 객체를 다시 자식 클래스 타입의 객체로 되돌리는데 목적을 둔다. (복구) 다운 캐스팅은 부모 클래스를 자식클래스로 캐스팅하는 단순히 업캐스팅의 반대 개념이 아니다. 다운 캐스팅의 진정한 의미는 부모 클래스로 업 캐스팅된 자식 클래스를 복구하여, 본인의 필드와 기능을 회복하기 위해 있는 것이다. 즉, 원래 있던 기능을 회복하기 위해 다운캐스팅을 하는 것이다. JAVA class Unit { public void attack() { System.out.println("유닛 공격"); } } class Zealot ex..

    [JAVA] ArrayList 사용법

    [JAVA] ArrayList 사용법

    ArrayList는 자바에서 기본적으로 많이 사용되는 클래스다. ArrayList는 자바의 List 인터페이스를 상속받은 여러 클래스 중 하나이다. 일반 배열과 동일하게 연속된 메모리 공간을 사용하며 인덱스는 0부터 시작한다. ArrayList 배열과의 차이점은 배열은 크기가 고정인 반면 ArrayList는 크기가 가변적으로 변한다는 것이다. 내부적으로 저장이 가능한 메모리 용량(Capacity)이 있으며 현재 사용 중인 공간의 크기(Size)가 있다. 만약 현재 가용량(Capacity) 이상을 저장하려고 할 때 더 큰 공간의 메모리를 새롭게 할당한다. 자바의 ArrayList를 활용하는 방법을 알아보자. 1. ArrayList 생성 자바에서 ArrayList를 사용하려면 아래 구문을 먼저 추가해야 한다..

    [JAVA] 상속 | 다형성(Polymorphism)

    https://changel.tistory.com/165 [JAVA] 상속 | 메서드 오버라이딩 https://changel.tistory.com/164 [JAVA] 상속 | 부모를 부르는 예약어, super 자바에서 굉장히 중요한 개념인 상속의 기초적인 개념을 저번 글에서 다루었다. https://changel.tistory.com/163 [Java] 상속 inheritance, 클 changel.tistory.com 상속 챕터를 공부하면서 묵시적 클래스 형변환과 가상 메서드 개념에 대해 확실하게 이해했다. 이제 이것을 바탕으로 객체 지향의 중요한 특성인 다형성에 대해 정리해 보고자 한다. 참고로 다형성은 추상 클래스, 인터페이스 등에서 구현된다. 다형성 - Polymorphism 다형성이란 하나의 코..

    [JAVA] 상속 | 메서드 오버라이딩

    https://changel.tistory.com/164 [JAVA] 상속 | 부모를 부르는 예약어, super 자바에서 굉장히 중요한 개념인 상속의 기초적인 개념을 저번 글에서 다루었다. https://changel.tistory.com/163 [Java] 상속 inheritance, 클래스 생성과 형변환 | 예제를 통해 이해하기 자바 개념을 확실하 changel.tistory.com 지난편에 이어 상속의 메서드 오버라이딩 개념에 대해 정리해보고자한다. 상위 클래스에 정의한 메서드가 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 이 메서드를 재정의 할 수 있다. 이를 메서드 오버라이딩이라고 한다. 걍 쉽게 말해서 상속 받은 상위 클래서의 메서드가 내가 구현할 클래스에서 필요 없거나 고쳐..

    [JAVA] 상속 | 부모를 부르는 예약어, super

    자바에서 굉장히 중요한 개념인 상속의 기초적인 개념을 저번 글에서 다루었다. https://changel.tistory.com/163 [Java] 상속 inheritance, 클래스 생성과 형변환 | 예제를 통해 이해하기 자바 개념을 확실하게 이해하고 넘어가야 스프링 프레임 워크 공부할 때 어려움이 없을 것 같아서 중요한 개념을 정리하고자한다. 강사님이 이해가 확실히 될 때까지 반복해서 보라고 강조하심 changel.tistory.com 이어서 상속에서 부모를 부르는 예약어인 super에 대해 알아보자. 하위 클래스는 상위 클래스의 주소인 참조 값을 알고 있다. 이 참조 값을 가지고 있는 예약어가 바로 super이다! (this가 자기 자신의 참조 값을 가지고 있는 것과 같다고 생각하면 됨) 또, 상위 ..

    [Java] 상속 inheritance, 클래스 생성과 형변환 | 예제를 통해 이해하기

    자바 개념을 확실하게 이해하고 넘어가야 스프링 프레임 워크 공부할 때 어려움이 없을 것 같아서 중요한 개념을 정리하고자한다. 강사님이 이해가 확실히 될 때까지 반복해서 보라고 강조하심! 상속이란 뭘까? 한국인이라면 의미를 짐작할 수 있을 것이다. 물려받는 것 정도? 객체 지향 프로그래밍에서 B클래스가 A 클래스를 상속받으면 B클래스는 A클래스의 멤버 변수와 메서드를 사용할 수 있다. 이 '상속'을 기반으로 프로그램 유지 보수를 유연하게 만들고 새로운 내용을 추가하거나 수정을 쉽게 할 수 있다. 부모 클래스를 '상위 클래스', - Super Class/ Base class 자식 클래스를 '하위클래스'라고 부른다. -Subclass, deprived class 상속의 문법: 예약어, Extends 영어 단어..

    [JAVA] 싱글톤 패턴(Singleton Pattern) - static 응용

    [JAVA] 싱글톤 패턴(Singleton Pattern) - static 응용

    자바 프로그래밍을 공부하다가 더 알아보고 싶어서 남기는 공부기록이다. 객체 지향 프로그램에서 인스턴스를 하나만 생성하는 디자인 패턴 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴은 '하나'의 인스턴스만 생성하여 사용하는 디자인 패턴이다. 디자인 패턴: 객체 지향 프로그램을 어떻게 구현해야 유연하고 재활용성이 높은 프로그램을 만들 수 있는지를 정리한 내용을 말한다. 즉, 프로그램 특성에 따른 설계 유형을 이론화한 내용이다. < 말이 좀 어려운데, 쉽게 말하면 특정한 알고리즘이나 프로그래밍 언어를 위한 라이브러리가 아니라 객체 지향으로 설계하는 방법을 설명이다! 싱글톤 패턴은 생성자가 여러번 호출되어도, 실제로 생성되는 객체는 하나이며 최초로 생성된 이후에 호출된 생성자는 이미 생성한 객체를 반..

    JAVA 2회독 시작 기록

    스프링을 공부하면서 JAVA에 대한 재공부의 필요성을 깨닫고 구멍난 나의 지식을 공부하려 한다. 나는 전공자이고, 기본 베이스가 있으므로 목표는 7일만에 자바 프로그래밍 입문 강의를 완강하는 것이다! 이번 방학 화탱

    [JAVA] 스프링 시작 전, 생활코딩 JAVA + 수업 완강 회고록(2)

    [JAVA] 스프링 시작 전, 생활코딩 JAVA + 수업 완강 회고록(2)

    https://changel.tistory.com/141 스프링 시작 전, 생활코딩 JAVA 입문 수업 완강 방학이 시작되었다. 컴퓨터 공학 전공과정을 밟고 있는 나는 다음 학기에 3학년 1학기를 시작하게 된다. 한 학기 휴학을했었기에 정규적으로 세 개의 학기가 남은셈이다. 내 상태를 정리해보자 changel.tistory.com 이틀전, 자바 입문 수업을 빠르게 완강했다. 그리고 오늘은 자바 입문 수업 외 추가 수업인 제어문, 메소드, 객체 지향 프로그래밍, 상속까지 자바의 모든 수업과정을 완강했다. 방학 시작 후 첫 번째 목표였던 '자바 공부 하기/ 생활코딩 완강하기'를 달성한 셈이다. 나는 전공자이기도하고 프로그래밍에대한 베이스가 있는편이었기에 빠른 시간 회독할 수 있었다. 물론 완벽한 것은 아님!..