Java (국비지원 당시 공부했던 글)/OOP (Java)

Java (국비지원 당시 공부했던 글)/OOP (Java)

[자바] OOP - 7. 접근 제어자 (public/protected/default/private)

접근 제어자는 다른 클래스에서 해당 자원을 사용하려고 할 때 허용하는 범위를 설정하는 것을 의미합니다. 접근제어자의 종류로는 public, protected, default, private 가 있습니다. 종류 설명 public 다른 패키지에서도 자유롭게 접근할 수 있는 자원 protected 다른 패키지에서는 상속받은 클래스에서만 접근할 수 있는 자원 default 같은 패키지에서는 자유롭게 접근할 수 있는 자원 (앞에 접근제어자를 붙이지 않은 것) private 같은 클래스 내부에서만 접근할 수 있는 자원 집합의 개념으로 볼 때 public 이 제일 넓은 범위를 포함시키고 있고, private 가 가장 적은 범위를 가지고 있는 것을 알 수 있습니다. 보통 저희가 클래스를 만들면 public class ..

Java (국비지원 당시 공부했던 글)/OOP (Java)

[자바] OOP - 6. toString()

사실 toString()을 OOP 카테고리에 분류하는것이 맞을까 싶지만 객체를 다루고 있고 이것이 이해하는데 도움이 될 것이라 여겨 함께 분류하는 것이 좋다는 생각이 들어 같이 설명합니다. toString 이해 객체를 문자로 표현하는 메서드인 toString에 대해 알아봅시다. Object.toString() 의 형태로 있는 이 클래스는 문자열로써 출력되어야 할 때 저절로 호출하는 메서드입니다. Object는 모든 타입의 부모이기 때문에 모든 클래스에 toString()이 포함되어 있습니다. toString 은 오버라이드를 해주는 특징이 있고, 이 메서드는 사용하지 않으면 기본적으로 메모리상의 주소값을 문자열로 반환합니다. Pig 라는 클래스를 만들어 보았습니다. toString 오버라이드 하기 전 Pi..

Java (국비지원 당시 공부했던 글)/OOP (Java)

[자바] OOP - 5. 상속 (객체의 다형성과 캐스팅)

객체의 다형성 객체는 다양한 형태를 지닐 수 있습니다 하나의 객체가 타입을 여러개를 가질 수 있다는 말과 동일합니다. 클래스는 어떻게 보면 객체의 타입이기도 한데, 부모 클래스 타입의 참조 변수로 자식 클래스의 참조타입을 참조할 수 있습니다. 자기 자신의 참조타입 뿐 아니라 다른 타입을 참조 할 수 있다는 것의 의미는 아무래도 중복제거의 느낌이 큽니다. 다형성 이라는 개념은 어떤 객체가 다른 객체를 참조하면서 생기는 문제들을 설명하기 위해 등장한 개념입니다. 객체가 다른 객체를 참조를 하는 것은 캐스팅 이라고 하는데, 캐스팅은 업캐스팅과 다운캐스팅으로 분류합니다. 왜 이 개념이 등장했는지 알기 전에 포켓몬스터를 예시로 들어보면 포켓몬스터라는 애니메이션, 게임을 생각해볼까요?. 피카츄, 라이츄, 파이리, ..

Java (국비지원 당시 공부했던 글)/OOP (Java)

[자바] OOP - 4. 상속 (상속 개념과 super, 오버라이드)

상속에 대한 이해 클래스는 '상속'을 받을 수 있습니다. 상속이라는 개념은 '물려받는 것' 정도로 생각할 수 있는데, 이미 만들어져 있는 클래스를 물려받는다는 것입니다. 클래스는 부모와 자식으로 나뉘고, 자식 클래스는 부모 클래스가 가지고 있는 모든 자원을 그대로 사용할 수 있습니다. (private 한 자원 제외) 자식 클래스에는 부모 클래스에 없던 기능을 새로 추가해서 사용할 수 있고, 자식 클래스는 반드시 가장 먼저 부모의 생성자를 호출해야 합니다. 부모 클래스가 자동 기본 생성자만 가지고 있다면 자식 클래스는 딱히 호출할 필요가 없습니다. 부모 클래스에서 생성자가 있다면 자식 클래스는 가장 먼저 부모의 생성자를 먼저 호출하여야 합니다. 또한 부모가 public 한 접근제어자를 가지고 있으면 자식도..

Java (국비지원 당시 공부했던 글)/OOP (Java)

[자바] OOP - 3. static과 변수 선언위치, 생성시기

static (정적 영역, 클래스 영역 인스턴스 영역) 같은 클래스의 모든 인스턴스(객체)가 공동으로 사용하는 영역을 정적 영역이라고 합니다. 모든 인스턴스가 하나의 영역으로 공동으로 사용하기 때문에 인스턴스가 많이 생성되는데에 비해 사용해야 하는 영역은 모든 인스턴스에서 같은 식으로 적용이 된다면, 아무래도 인스턴스가 많이 필요할수록 그만큼 자원이 세이브가 됩니다. // clock01 객체 생성 int hour; int minute; int second; // clock02 객체 생성 int hour; int minute; int second; // --> 객체가 하나 생성될 때마다 똑같은 hour, minute, second를 필요로 한다 // ==> 클래스에서 접근 static int HOUR; s..

Java (국비지원 당시 공부했던 글)/OOP (Java)

[자바] OOP - 2. 클래스의 생성자와 오버로딩

이전 글에서 클래스에 어느정도 다뤄보았는데, 클래스의 생성자라는 것이 있습니다. 알게 모르게 써왔던 것들인데 그것은 클래스의 생성자입니다. 클래스의 생성자는 클래스의 이름과 똑같은 이름을 가진 메서드입니다. 생성자는 리턴 타입을 지정하지 않고 새로운 인스턴스를 생성할 때 new와 함께 생성자를 호출합니다. 생성자 호출 예시 : 노란 부분이 생성자를 호출하고 있는것이고, 참조변수 o 에 생성자에 지정한 값들을 전달하게 되는데 내부에 생성자를 정의하지 않은 클래스는 보이지 않는 자동 기본 생성자가 생성이 됩니다. 생성자는 일반적으로 이런식으로 작성합니다. 클래스 이름과 동일하게 작성한 이 메서드는 생성자입니다. 또, 내부에 아무것도 들어가 있지 않기 때문에 기본 생성자 라고 볼 수 있는데요 기본 생성자는 별..

Java (국비지원 당시 공부했던 글)/OOP (Java)

[자바] OOP - 1. 메서드와 클래스

객체 지향 프로그래밍 (Object Oriented Programming) 서론 객체 지향 프로그래밍은 세상에 존재하는 모든 것(객체) 들을 변수와 함수로 표현하려는 프로그래밍 방법론이다. 자바나 파이썬과 같이 객체지향 언어를 배워두면 문법 공부 중반쯤부터 '객체'라는 개념을 배우기 시작한다. 객체지향 언어는 객체 지향 프로그래밍을 하기 위한 언어로, 이와 반대로 존재하는 개념은 절차 지향 프로그래밍이다. 절차 지향 프로그래밍은 위에서 아래로 순차적으로 흐르는 프로그래밍 방법인데 이 방법은 컴퓨터가 작업을 처리하는 방식과 유사하기 때문에 파일 실행 시 객체 지향으로 작성한 파일보다 더 빠르게 실행을 시킬 수 있다. 대표적인 절차 지향 프로그래밍 언어로는 C언어가 있다. (C언어는 대표적인 절자 지향 프로..

Java (국비지원 당시 공부했던 글)/OOP (Java)

[자바] 메소드란? (메소드, 리턴, 인자, 매개변수)

1. 함수 (Function) 함수는 기능을 미리 정의해두고 나중에 가져다가 쓰는 것인데 함수, 메서드를 사용하는 이유는 나중에 재사용 할 가능성이 있는 기능들을 함수로 만들어두면 작업의 반복을 줄일 수 있다. 미리 정의된 함수 이름 뒤에 ( ) 를 붙여 해당 함수를 호출할 수 있다. 함수를 정의한 시점에는 실행되지 않고 나중에 호출되었을 때 실행이 된다. (변수를 선언만 하고 초기화를 안하는 것하고 비슷함) 자바에서 함수는 반드시 클래스 내부에 선언(정의) 해야 하고, 다른 함수 내부에서는 정의할 수 없다. 클래스 내부에 선언된 함수는 메서드라고 부른다. 2. 함수의 리턴(return) 함수를 정의할 때 함수명 앞에 함수타입으로 반드시 반환하는 값의 타입을 지정한다. 여기서 함수명은 plus 인데 반환..

m0j4
'Java (국비지원 당시 공부했던 글)/OOP (Java)' 카테고리의 글 목록