반응형

프로그래밍 언어/자바 19

자바 18. 단일상속, object클래스

저번 글에 이어서 클래스간의 관계에 대해서 단일상속과 object클래스라는 것에 대해 알아봅시다. 단일상속 먼저 저번 글에서 하나의 조상이 여러개의 자손을 가지는 상속은 가능하다고 이야기했었습니다. 그렇다면 반대로 하나의 자손이 여러개의 조상으로부터 상속받는 것은 어떨까요? 아쉽게도 자바에서는 이렇게 둘 이상의 조상을 가지는 상속(다중상속)을 지원하지 않습니다. 다중상속을 허용하면 여러 클래스로부터 상속을 받을 수 있기 때문에 복합적인 기능을 가진 클래스를 쉽게 작성할 순 있겠지만, 클래스간의 관계가 매우 복잡해지고, 서로 다른 조상간에 같은 이름을 가진 멤버를 구별할 수 있는 방법이 없다는 단점이 있습니다. 예를 들어 Parents1, 2클래스에 모두 method라는 메서드가 있다고 가정하고 이 두 클..

자바 17. 상속, 포함관계

이번 글에서는 클래스 간의 관계에 대해서 상속과, 포함관계를 알아보도록 하겠습니다. 상속 상속은 자바에서 제공하는 아주 특별한 기술인데, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것입니다. 이를 통해 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통적으로 관리할 수 있습니다. 이러한 특징으로 코드의 재사용성을 높이고, 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여하는 기술입니다. 말만으로는 잘 모를 것 같은데, 간단하게 상속을 사용하는 법을 알아보도록 합시다. public class example{ public static void main(String[] args){ Parents p = new Parents(); Child c = new Child();..

자바 16. 변수의 초기화

이번 글에서는 변수의 초기화에 대해서 알아보도록 합시다. 다들 아시다시피 초기화란 변수를 선언하고 처음으로 값을 저장하는 것을 말합니다. 이 초기화는 필수적일 때도 있고, 선택적일 때도 있지만, 가능하면 선언과 동시에 초기화하는 것이 좋습니다. 이때 지역변수, 즉 메서드 내에 선언되어 있는 변수들은 사용하기 전에 꼭 초기화를 해주어야 하지만, 멤버변수는 초기화를 하지 않아도 자동으로 변수의 자료형에 따라 기본값이 저장되기 때문에 초기화 없이 사용이 가능합니다. 예를 들어 위와 같은 상황에서 인스턴스변수인 x는 자동으로 int의 기본값인 0이 저장되기 때문에 y에 값을 대입할 수 있습니다. 반면 지역변수인 i는 선언후 값을 초기화하지 않았기 때문에 j에 값을 대입할 수가 없어 오류가 발생합니다. 각 자료형..

자바 15. 생성자(Constructor)

이번 글에서는 생성자에 대해서 알아보도록 하겠습니다. 생성자(Constructor)란? 생서자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드' 입니다. 따라서 인스턴스 변수의 초기화 작업등 인스턴스 생성 시에 실행되어야 하는 작업을 위해 사용됩니다. 생성자도 메서드처럼 클래스 내에 선언되며, 구조도 유사하지만 리턴값이 없습니다. 생성자의 조건은 다음과 같습니다. 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴값이 없다. 다음으로 생성자를 정의하는 방법입니다. 클래스이름(타입, 변수명, 타입 변수명, ...){ //인스턴스 생성 시 수행될 코드 } Tv(){ //매개변수가 없는 생성자 } Tv(int height, int width){ //매개변수가 있는 생성자 } 이 생..

자바 14. 메서드 오버로딩

객체지향 프로그래밍 이어서 공부해보도록 합시다. 메서드 오버로딩(method overloading) 이번 글에선 먼저 메서드 오버로딩에 대해서 알아보도록 하겠습니다. 먼저 메서드는 저번 글에서 말했다시피 이름이 같아도 매개변수의 개수, 또는 타입이 다르면 서로 다른 메서드로 인식됩니다. 이렇게 한 클래스 내에서 같음 이름을 가진 여러개의 메서드를 정의하는 것을 메서드 오버로딩 또는 간단히 오버로딩 이라고 합니다. 메서드 오버로딩의 조건은 다음과 같습니다. 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다.(매개변수의 이름은 상관없음) 3. 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성립되지 않는다. 위의 조건을 만족시키지 못하면 컴파일 시에 오류가 발생하니 꼭 주의하..

자바 13. 변수의 종류, 메서드

객체지향 프로그래밍에 대해 이어서 알아보도록 하겠습니다. 이번 글에서는 변수의 위치에따른 종류와 메서드에 대해서 알아보겠습니다. 위치에 따른 변수의 종류 자바에서 변수는 해당 변수를 어느 위치에 선언하느냐에 따라 클래스변수, 인스턴스변수, 지역변수의 세 종류로 나뉩니다. 인스턴스변수(instance variable) 인스턴스변수는 클래스 영역에 선언되며, 해당 클래스의 인스턴스를 생성할 때 만들어집니다. 때문에 인스턴스변수를 사용하려면 당연히 인스턴스를 먼저 생성해야 합니다. 또한 인스턴스는 여러 개 생성할 수 있고, 각 인스턴스의 인스턴스변수는 서로 독립적입니다. 각 인스턴스마다 독립적인 데이터를 저장해야 할 때, 인스턴스변수를 사용합니다. 클래스변수(calss variable) 클래스변수는 선언되는 ..

자바 12. 클래스와 객체

이미 아시다시피 자바는 대표적인 객체지향 언어 중 하나입니다. 객체지향의 주요 특징은 다음과 같습니다. 1. 코드의 재사용성이 높다. -새로운 코드를 작성할 때 기존의 코드를 사용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. -코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. -제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오작동을 방지할 수 있다. 이 중에서도 객체지향언어의 가장 큰 장점은 코드의 재사용성이 높고, 유지보수가 용이하다는 점인데, 앞으로 알아볼 여러가지 객체지향개념을 통해서 보다 쉽게 이해할 수 있을 것입니다. 그러면 이제 자바에서 어떻..

자바 11. 배열-2

배열에 대해서 이어서 알아보도록 하겠습니다. 다차원 배열 우리가 지금까지 보았던 배열은 모두 '1차원 배열'이라고 부르는 것들입니다. 복수의 자료형을 메모리 공간상에 선형, 즉 1차원으로 잡혀있기 때문에 이처럼 부르는 것입니다. 자바에서는 1차원 배열 외에도 2차원 이상의 배열도 사용할 수 있도록 허용하고 있습니다. 물론 메모리 공간에서는 동일하게 연속적인 공간일 뿐이고, 편의상 이처럼 부르는 것입니다. 이렇게 2차원 이상의 배열들을 다차원 배열이라고 이야기하는데, 다차원 배열들은 각각 자신보다 한 단계 아래 차원의 배열들을 요소로 하는 배열입니다. 예를 들어 2차원 배열은 1차원 배열들을 각 요소로 가지며, 3차원 배열들은 1차원 배열을 각 요소로 하는 2차원 배열을 요소로 가지게 됩니다. 즉 '배열의..

자바 10. 배열-1

이번 글에서는 배열에 대해서 알아보도록 하겠습니다. 배열이란? 배열이라는 것은 특정한 자료형의 여러 변수들을 하나의 묶음으로 다루는것을 이야기합니다. 만약 여러분이 숫자 5개를 저장해야된다면 변수를 어떻게 선언하실건가요? public class example{ public static void main(String[] args){ int n1, n2, n3, n4, n5; } } 숫자의 개수가 5개인 경우엔 위와 같이 별 어려움 없이 해결할 수 있습니다. 하지만 이런때 늘 나오는 이야기로, 저장할 숫자가 100개, 1000개, 혹은 10만개라면? 이런 경우엔 위와 같은 방법으론 해결할 수 없으실겁니다. 이때 배열을 사용하면 이를 손쉽게 다룰 수 있습니다. 배열의 기본 형식은 다음과 같습니다. 자료형[] ..

자바 9. 반복문

이번 글에선 반복문에 대해서 알아보도록 합시다. 프로그래밍 언어에서 반복문은 조건문과 마찬가지로 정말 필수적인 요소입니다. 만약 여러분이 특정한 데이터, 또는 문자열을 여러번 출력하려면 어떻게 하실 건가요? public class example{ public static void main(String[] args){ System.out.print("자바 9. 반복문"); System.out.print("자바 9. 반복문"); System.out.print("자바 9. 반복문"); System.out.print("자바 9. 반복문"); System.out.print("자바 9. 반복문"); } } 당장은 이렇게 하면 원하는 문자열을 5번 출력할 수 있을 것입니다. 하지만 이것이 5번이 아닌 100번, 10..

반응형