본문 바로가기

IT_Developers1149

JAVA 기본 접근제어자 - protected 이란? / 접근 범위 / 예제 protected에 대해 알아보자! 안녕하세요. 고코더 입니다. protected 접근제어자나는 부모 클래스에 대해서는 접근이 가능하나 외부에서는 접근이 불가능합니다. protected의 경우는 public이랑 비슷한 느낌이 들 수 있습니다. 상속만 하면 자유롭게 사용이 가능하기 때문입니다. 이 접근제어자는 아키텍처가 구현할 내용이 남아있거나 정확한 컨셉을 잡지 않은 경우 사용하는 경우가 있습니다. 예외가 있는 객체라면 이 접근제어자로 생성해두고 이를 수정할 수 있기 때문입니다. protected 접근 구조도 해당 접근 제어자가 접근 가능한 범위는 이와 같습니다. public이랑 가장 가까운 접근제어자 입니다. - 같은 클래스 - 같은 패키지 - 상속받은 클래스 ● protected로 변수를 선언합니다... 2020. 3. 13.
JAVA 기본 접근제어자 - public 이란? / 접근 범위 / 예제 public 을 알아보자 안녕하세요. 고코더 입니다. 지난 시간에 자바에서 사용하는 기본 접근 제어자를 배워보았습니다. 첫번째는 public 제어자를 알아봅니다. 퍼블릭은 단어 뜻 그대로 일반적인 대중적인 접근 제어자 입니다. 어떤 클래스에서도 접근 가능할 수 있도록 열어놓는다는 뜻입니다. 그리고 자바에서는 public 메소드를 통해 private 멤버에 접근할 수 있습니다. public 와 private 사이의 인터페이스 역할을 수행 하기도 합니다. public 접근 이미지 구조도 그림을 참조해보겠습니다. 퍼블릭으로 선언된 접근제어자는 같은 패키지 클래스는 물런이고 다른 패키지의 클래스도 접근이 가능합니다. 예제소스 public을 사용한 변수와 메소드 입니다. 해당 코드는 어디에서나 객체를 만들어 접근.. 2020. 3. 13.
JAVA - 접근 제어자(access modifier) / 상세하게 접근 제어자에 대해 알아봅시다. 안녕하세요. 고코더 입니다. 자바에는 다음과 같은 접근 제어자가 있다. 접근을 접근제어자 문법을 만든 이유는 외부에서 잘못 변경되는 것을 막기 위해서입니다. 사용자로부터 최소한의 정보를 제공하는 은닉성 때문입니다. 접근 제어자는 자바에서 4가지 방식이 존재합니다. 이름 기호 설명 private - 자기 자신의 클래스에서 접근 default(package) ~ 동일한 패키지 접근(명시하지 않으면 default) protected # 파생 클래스, 동일한 패키지 접근 public + 접근 제한이 없음 접근 제어자 범위 접근 제어자의 범위를 표로 나타내었습니다. private < default < protected < public 순으로 접근에 대한 범위가 넓습니다. publi.. 2020. 3. 12.
JAVA - 가비지컬렉션(garbage collection)이란? / Stop The World / 예제 자바 메모리의 쓰레기 수거? 안녕하세요. 고코더 입니다. 자바의 중요한 특징 중 하나인 가비지컬렉션을 알아봅니다. 직역하면 "쓰레기 수거"라고 번역되는데요. 말 그대로 메모리 상에 있는 쓰레기를 수거 하는 방법 입니다. 불필요하게 저장된 메모리 영역을 해체하는 기능을 합니다. 1959년 존 매카시가 개발하였습니다. 이런 특성 덕분에 자바는 알아서 메모리를 정리하기 때문에 개발이 수월한 면이 있습니다. 직접 메모리를 관리하는 C, C++ C, C++ 에서는 메모리를 명시적으로 직접 해체해야 합니다. 그래서 메모리 관리를 하지 못하면 memory leak이 발생합니다. 직접적인 메모리 영역을 다루기 때문에 더 좋은 성능으로 프로그램을 작성 할 수 있습니다. 가비지 컬렉션(GC) 예제 자바는 OS 의 메모리 .. 2020. 3. 12.
JAVA - 오버라이딩(Overriding)이란? / 예제 소스 오버라이딩을 알아보자 안녕하세요. 고코더 입니다. 오버라이딩은 상위 클래스에서 가지고 있는 메소드를 하위 클래스에서 메소드에서 재정의해서 사용할 수 있는걸 말합니다. 다시 말하면 상속에서 나온 개념입니다. 부모 클래스의 메소드를 자식 클래스의 메소드로 정의하는 것입니다. 오버라이딩시에 메소드의 이름, 매개변수, 리턴 값이 같아야 한다. book.java, bookstore.java : 오버라이딩 사용 12345678910111213141516171819 public class Book{ public String name; public int price; public void print(){ System.out.println("책 이름 "+this.name+ ", 가격은" + this.price); } }.. 2020. 3. 11.
JAVA - 다형성(Polymorphis)이란? 다형성이 무엇인지 알아보자? 안녕하세요. 고코더 입니다. 다형성의 국어사전 뜻은 이와 같습니다. 자바에서 사용하는 다형성을 설명하기에 좋아보여 참고합니다. 동일종(同一種)의 생물이면서도 형태나 성질이 다양성을 보이는 상태. 암수에 의한 크기·형태·색깔 등의 차이와 꿀벌에서의 여왕벌과 일벌 같은 것. 다형성은 객체지향 프로그램에 특징 중 하나 입니다. 상속이 대표적인 개념이기도 합니다. 서로 다른 클래스의 객체가 같은 값을 받은 후 각자의 방식으로 동작하는 능력을 말합니다. 하나의 객체가 여러가지 타입을 가질 수 있는 것을 의미 합니다. - 여러 가지 형태를 가질 수 있다 - 하나의 참조변수로 여러 타입의 객체를 참조 - 부모 타입의 참조변수로 자손타입의 객체를 다룬다. 다형성 비유 지금 이 글을 보고 있.. 2020. 3. 11.
JAVA - 오버로딩(Overloading)이란? / 예제 소스 / 컴파일 원리 오버로딩 사용하는 방법 원리 안녕하세요. 고코더 입니다. 자바가 가지고 있는 다형성 특징 중에 메소드를 오버로딩 하는 방법이 있습니다. 같은 이름의 메소드를 매겨 변수의 유형과 갯수를 통해 다르게 사용 가능하도록 하는 기술입니다. 예제 소스를 작성하면서 좀 더 알아보겠습니다. OverloadingGO.java : 오버로딩을 사용합니다. 1234567891011121314public class OverloadingGO{ void overloading(){ System.out.println("변수 없음"); } void overloading(int a, string b){ System.out.println("변수 "+ a + ", " + b); } void overloading(double c){ Syste.. 2020. 3. 11.
JAVA - 자바 기본 자료형 (primitive data type) 란? 자바 기본 자료형을 알아보자 안녕하세요. 고코더 입니다. 기본 자료형은 자바 컴파일러에 의해서 해석되는 자료형을 말합니다. 실제 값을 갖는 자료형으로 자바에서 여러 형태의 타입을 미리 정의하여 제공하는 것입니다. char, byte, short, int, long, float, double, boolean등이 존재합니다. 자료형 표 기본 자료형은 자바에서 기본적으로 제공하는 자료형을 말합니다 자료형 키워드 크기 설명 정수형 byte 1 -127 ~ +128 short 2 -32,768 ~ + 32,767 int 4 -2,147,483,648 ~ +2,147,483,647 long 8 -9,223,372,036,854,775,808~ +9,223,372,036,854,775,807 실수형 float 4 -.. 2020. 3. 11.
JAVA - String, StringBuffer, StringBuilder 차이점은? string을 다루는 3가지 클래스의 차이점 안녕하세요. 고코더 입니다. 이번 시간에는 자바에서 문자열을 저장하는 클래스인 String, StringBuffer, StringBuilder의 차이점을 알아보려고 합니다. 이 클래스들은 string 값을 저장하고 관리하는 기능을 한다는 건 모두 알고 계십니다. 그런데 대체 무슨 차이가 있을까요? 그 차이점을 알아봅니다. String 클래스의 큰 특이점 : 불변성 ● 1. String pool에 저장 가장 대표적인 차이는 역시 string은 리터럴을 통해 생성해 인스터스 메모리 공간을 차지합니다. 즉 변하지 않는 값이 됩니다. 다시 한번 설명합니다. string class를 사용해 문자를 생성합니다. 그럼 "String pool"이라는 공간에 생성됩니다. 이 .. 2020. 3. 11.