Java
-
자바의 예외(Exception)란 무엇일까?Java 2018. 7. 26. 12:40
코딩을 하다보면 항상 만나는 ~~~.Exception ,,,,볼때마다 답답하고,, 숨이 막히는데요이번에 Exception에 대해 알아보겠습니다. * 노란 박스 - Checked Exception* 파란 박스 - Unecked Exception 0. Exception vs Error 1) 에러(Error) - 시스템에서 비정상적인 상황이 생겼을 때 발생한다. - 시스템 레벨에서 발생하기 때문에 개발자가 미리 예측하여 처리할 수 없는 심각한 오류입니다. 2) 예외(Exception) - 개발자가 구현한 코드에서 발생하기 때문에 미리 예측하고 코드에 의해 수습될 수 있는 오류입니다. 3) Checked Exception vs Unchecked Exception - Checked 와 Uncheked의 가장 큰 ..
-
객체의 관계들은 어떤것이 있을까?Java 2018. 7. 25. 11:08
다루고 있는, 앞으로 다룰 시스템에는 클래스, 객체가 하나인 것은 없습니다. 객체 지향 시스템에서 수많은 클래스와 객체가 존재하고 다양한 계층구조를 이루는데요.이러한 계층을 이루는 객체들간의 관계에 대해 알아봅시다. 1. 객체 (Object) 란? - 시스템의 기본 단위입니다. - 속성과 기능으로 구성합니다. 2. 객체 지향 (Object-Oriented) 란? - 시스템 분석 설계 기법 중 하나입니다. - 시스템의 기본 단위를 객체로 상정하고, 객체와 객체의 관계를 중심으로 시스템을 분석, 설계하는 기법입니다. * 소프트웨어 개발 프로세스 중 폭포수모델 : 요구분석 -> 설계 -> 구현 -> 테스트 -> 운영 중 분석과 설계에 해당한다. 3. 객체 지향 프로그래밍 (Object-Oriented Prog..
-
static, final, abstract 무엇일까?Java 2018. 7. 19. 18:43
static, final, abstract 에 대한 각 용어의 개념과 실제 사용 예를 살펴봅니다. 1. static - 정적이며 클래스 영역에 저장됩니다. - static member ( variable, method ) 를 class member라고도 표현한다. - 일반적으로 static modifier 는 method와 variable 앞에 명시된다. - 객체의 생성 없이 클래스 로딩만으로 메모리에 적재되므로 클래스명, 변수, 메소드로 접근해서 사용할 수 있다. - static 에서는 non-static으로 직접 접근이 불가합니다. 접근을 위해서는 반드시 객체 생성을 해야합니다. - non-static 에서 static 으로는 직접 접근이 가능합니다. * java는 class loading ▶ byt..
-
객체 지향3. 다형성(Polymorphism)이란 무엇일까?Java 2018. 7. 17. 12:04
객체 지향에서 가장 많이 쓰인다는 다형성이라는데...너무 어렵다.. 어려워도 내용정리해보자!! 1. 다형성(Polymorphism)이란? - 하나의 소통 방식으로 다양한 객체들이 각자의 방식으로 다양하게 동작하는 성질입니다. - 부모 타입의 변수로 다양한 자식 객체를 참조할 수 있습니다. ▶ 다양한 수많은 객체를 하나의 인터페이스로 처리할 수 있습니다. 2-1. 첫번째 사용 예시 - 부모타입의 변수로 자식 객체를 참조.▶ 하나의 메소드를 통해 다양한 자식 객체를 처리할 수 있습니다. (단 상속관계가 아닌 객체는 에러가 발생합니다.)12345678910111213141516171819202122232425262728293031323334353637class Animal { // extends Object ..
-
객체 지향2-1. 오버로딩(Overloading)과 오버라이딩(Overriding)은 무엇일까?Java 2018. 7. 16. 14:48
상속에 대한 개념 정리 후, 단골 질문인 오버로딩과 오버라딩에 대해 정리해보고자 합니다. 1. 오버로딩 ( Overloading ) - 오버로딩이란 동일한 이름으로 다양한 매개변수를 정의하는 프로그래밍 기법입니다. - 컴파일러는 매개 변수가 다르면 다른 메소드로 인식합니다. ① 메소드 오버로딩 ( Method Overloading ) - 동일한 메소드명으로 다양한 매개변수의 메소드를 정의합니다. - 사용하는 측에서는 하나의 메소드명만 인지하면 다양한 데이터를 전달해 처리할 수 있기에 사용자 편의성을 위한 프로그래밍 기법입니다. ▶ api를 통해 실제 예를 알아보겠습니다. java.io 패키지 안에 PrintStream이라는 클래스 안에 우리가 자주는 println 이라는 여러개의 메소드를 볼 수 있습니다..
-
객체 지향2. 상속(Inheritance)은 무엇일까?Java 2018. 7. 16. 11:42
객체 지향의 특징인 상속에 대해 알아보자~ 1. 상속 (Inheritance) - 상속은 자식 객체들의 공통적인 속성과 기능을 부모 객체에 정의하고 물려 받아 재사용하는 것입니다. -> 코드의 중복을 줄일 수 있고, 유지 보수가 편하며 생산성이 높아집니다. - 상속을 통해 계층구조를 형성하면 다형성 적용환경이 됩니다. - 상속은 is a relationship 입니다. (generalization) - 자바는 단일 상속입니다. 2. extends keyward - 부모 클래스르 확장해서 자식 클래스를 정의합니다. 3. 상속 사용 예제 ① Bank라는 클래스를 만듭니다.123456789101112131415161718package org.bank; public class Bank { public void ..
-
객체 지향1. 캡슐화(Encapsulation)은 무엇일까?Java 2018. 7. 13. 15:23
객체 지향이 가지는 특징에 대해 자세히 알아보고 싶어 작성하였습니다. ^^ 1. 캡슐화(Encapsulation)이란? - 데이터와 데이터를 처리하는 함수를 하나의 단위로 묶은 것입니다. - 캡슐화를 통해 객체의 정보를 보호하고 정보를 은닉(Data Hiding)합니다. ▶ 각 객체끼리의 응집도는 높아지고, 결합도는 낮아집니다. ▶ 결합도가 낮아지니 생산성이 높아집니다. - 캡슐화 된 클래스의 변수들은 접근제어자(Access Modifier)를 통해 접근을 제어합니다. - private를 사용하여 클래스 내부의 변수를 선언합니다. - setter, getter 메서드를 통해 변수의 값들을 조회하거나 수정할 수 있습니다. 2. 접근 제어자 ( Access Modifier ) - 접근 제어자로는 public..
-
가비지 컬렉션(Garbage Collection)???Java 2018. 7. 12. 18:52
자바 공부하면서, 앞에서도 메모리 구조 정리하면서 가비지, 가비지 이야기가 많은데,,정확히 어떤 동작을 하는지, 어떤 것을 처리하는지 몰라서 찾아보았습니다. 1. 가비지 컬렉션 (Garbage Collection)? - 가비지 컬렉터는 힙 메모리를 다룹니다. - 가비지 컬렉터 (Garbage Collector) 는 힙 내의 Garbage를 찾아내고 처리해서 힙의 메모리를 회수한다. - reachability라는 개념을 사용하여 객체의 유효한 참조가 있으면 reachability, unreachability로 Garbage를 판단한다. New / Young GenerationTenured Generation Permanent Generation Eden Survivor 0 Old Permanent Surv..