공부 STUDY

    [JAVA] 예외처리 (Exception) -(1)

    [JAVA] 예외처리 (Exception) -(1)

    Exception 프로그램실행중 예기치 못한 사건을 예외라고 한다. 예외 상황을 미리 예측하고 처리할 수 있는데, 이렇게 하는 것을 예외 처리라고 한다. public class ExceptionExam { public static void main(String[] args) { int i = 10; int j = 5; int k = i / j; System.out.println(k); System.out.println(main 종료!!); } } 위 코드에서 j를 0으로 바꾸면 Excption 발생 j를 0으로 바꾸면 ArithmeticException이 발생하면서 프로그램이 종료된다. Java는 정수를 정수로 나눌때 0으로 나누면 안된다.0으로 나누면 오류가 발생하는 것 예외 처리 프로그래머는 j라는 ..

    [JAVA] 가상 메서드(virtual method)

    [JAVA] 가상 메서드(virtual method)

    상속에서 상위 클래스와 하위 클래스에 같은 이름의 메서드가 존재할 때 호출되는 메서드는 인스턴스에 따라 결정된다. 선언한 클래스형이 아닌 생성된 인스턴스의 메서드를 호출하는 것. 인스턴스의 메서드가 호출되는 기술을 '가상 메서드(virtual method)'라고 한다. 가상메서드 자바의 클래스는 필드(멤버변수)와 메서드(멤버 함수)로 이루어져 있다. 클래스를 생성하여 인스턴스가 만들어지면 필드(멤버 변수)는 힙 메모리에 위치한다. 변수가 사용하는 메모리와 메서드가 사용하는 메모리는 다르다. 변수는 인스턴스가 생성될 때마다 새로 생성되지만, 메서드는 실행해야 할 명령 집합이기 때문에 인스턴스가 달라도 같은 로직을 수행해야 한다. 같은 객체의 인스턴스를 여러 개 생성한다고 해서 메소드도 여러개 생성되지 않는..

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