본문 바로가기
728x90
반응형

분류 전체보기77

[Java] 7-3. package와 import 1. 패키지(package) 패키지란 클래스의 묶음이다. 패키지엔 클래스나 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓아 클래스를 효율적으로 관리할 수 있다. 같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능하다. 사실 클래스의 풀네임은 패키지명을 포함한 것이다. 예로 String클래스는 java.lang.String이다. java.lang패키지에 속한 String클래스 라는 의미이다. 그렇기 때문에 같은 이름의 클래스라도 패키지명으로 구별이 가능하다. 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리이다. 디렉토리가 하위 디렉토리를 가질 수 있는 것처럼 패키지 또한 하위 패키지를 가질 수 있고 점(... 2022. 9. 5.
[Java] 7-2. 오버라이딩(overriding) 오버라이딩(overriding) 1. 오버라이딩이란? 상위 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메서드를 그대로 사용하기도 하지만 하위 클래스에서 다르게 변경하는 경우가 많다. 그러할 때 메서드를 오버라이딩한다. class Point { int x; int y; String getLocation() { return "x :" + x + ", y :" + y; } } class Point3D extends Point { int z; String getLocation() { // 오버라이딩 return "x :" + x + ", y :" + y + ", z :" + z; } }​ Point3D클래스의 인스턴스는 getLocation 메서드를 호출할 경우 z축의 .. 2022. 9. 3.
[Java] 7-1. 상속(inheritance) 상속(inheritance) 1. 상속의 정의와 장점 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있어 코드의 추가 및 변경이 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거해 프로그램의 생산성과 유지보수에 크게 기여한다. 상속을 구현하는 방법은 새로운 클래스 이름 뒤에 상속받고자 하는 클래스의 이름을 extends 키워드와 함께 쓰면 된다. class Child extends Parent { ... }​ 두 클래스 Child와 Parent는 상속 관계에 있다. 상속해주는 클래스를 조상 클래스 상속 받는 클래스를 자손 클래스라 한다. 조상 클래.. 2022. 9. 3.
[Java] 6-5, 6. 생성자 & 변수의 초기화 생성자(constructor) 1. 생성자란? 생성자는 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드이다. 인스턴스변수의 초기화 작업에 주로 사용되며 인스턴스 생성 시 실행되어야 할 작업을 위해서도 사용된다. 생성자도 메서드처럼 클래스 내에 선언되며 구조도 메서드와 유사하지만 리턴값이 없다는 점이 다르다. 하지만 일반 메서드처럼 생성자 앞에 void키워드를 사용하지 않고 아무것도 적지 않는다. 생성자의 조건은 다음과 같다. 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다.​ 생성자는 다음과 같이 정의하고 오버로딩이 가능하여 하나의 클래스에 여러개의 생성자가 존재할 수 있다. clss Card{ Card() { // 매개변수 없는 생성자. ... } Card(Str.. 2022. 9. 2.
[Java] 6-4. 오버로딩(overloading) 오버로딩(overloading) 1. 오버로딩이란? 메서드도 변수처럼 같은 클래스 내에서 구별될 수 있도록 각기 다른 이름을 가져야 한다. 그러나 자바에서는 같은 클래스 내에서 같은 이름을 가진 메서드가 있어도 매개변수의 개수 또는 타입이 다르면 같은 이름으로 메서드를 정의할 수 있다. 이렇게 한 클래스 내에서 같은 이름의 메서드를 여러개 정의하는 것을 오버로딩이라 한다. 2. 오버로딩의 조건 오버로딩이 성립하기 위해서는 다음과 같은 조건을 만족해야 한다. 1. 메서드의 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다.​ 메서드의 이름이 같아도 매개변수의 개수나 타입이 다르면 구별할 수 있기 때문에 오버로딩이 가능하다. 오버로딩된 메서드들은 매개변수에 의해서만 구별될 수 있으므로 반환.. 2022. 9. 2.
[Java] 6-3. 변수와 메서드 변수와 메서드 1. 선언위치에 따른 변수의 종류 변수는 클래스변수, 인스턴스변수, 지역변수 모두 세 종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 변수가 선언된 위치이다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙으면 클래스변수, 붙지 않으면 인스턴스변수이다. 변수의 종류 선언위치 생성시기 클래스 변수 (class variable) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수 (instance variable) 인스턴스가 생성되었을 때 지역변수 (local variable) 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 1. 인스턴스 변수(instance variable) 클래스 영역에 선언되고 클래스.. 2022. 9. 2.
[Java] 6-1, 2 객체지향언어, 클래스와 객체 객체지향언어 객체지향이론의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.' 라는 것이다. 실제 사물의 속성과 기능을 분석한 다음에 데이터(변수)와 함수로 정의하여 실제 세계를 컴퓨터 속에 옮겨 놓은 듯한 가상세계를 구현하고 이 가상세계에서 모의실험을 하여 시간과 비용을 절약할 수 있다. 객체지향이론은 상속, 캡슐화, 추상화 개념을 중심으로 발전되었다. 객체지향언어는 기존의 프로그래밍언어와 다른 새로운 것이 아니다. 기존의 언어에 몇 가지 새로운 규칙을 추가한 발전된 형태이다. 객체지향언어의 가장 큰 장점은 코드의 재사용성이 높고 유지보수가 용이하다는 것이다. 객체지향개념을 학습할 때 재사용성과 유지보수 그리고 중복된 코드의 제거, 이 세 가지 관.. 2022. 9. 1.
[Java] 5. 배열(Array) 배열 1. 배열(array)이란? 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 배열이라고 한다. 배열을 사용하면 많은 양의 데이터를 손쉽게 다룰 수 있다. 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다. 저장하려는 데이터의 개수 만큼 배열의 길이만 바꾸면 된다. 2. 배열의 선언과 생성 배열을 선언하는 방법은 간단하다. 원하는 타입의 변수를 선언하고 변수 또는 타입에 배열을 의미하는 대괄호[]를 붙이면 된다. 대괄호의 위치는 타입 뒤 또는 변수이름 뒤 모두 가능하다. 선언방법 선언 예시 타입[] 변수이름; int[] score; String[] name; 타입 변수이름[]; int score[]; String name[]; 배열의 생성 배열을 선언한 다음 생성해야한다. 선언하는 것은 참.. 2022. 9. 1.
[Java] 4. 조건문과 반복문 코드의 실행흐름이 위에서 아래로 흐르지만 않고 조건에 따라 문장을 건너뛰기도 하고, 같은 문장을 반복해서 수행해야할 경우도 있다. 이처럼 프로그램의 흐름을 바꾸는 역할을 하는 문장들을 제어문(control statement)이라 한다. 제어문에는 조건문과 반복문이 있다. 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다. 조건문 - if, switch 조건문은 조건식과 문장을 포함하는 블럭({})으로 구성되어 있다. 조건식의 연산결과에 따라 실행할 문장이 달라져 프로그램의 실행흐름을 변경한다. if문과 switch문이 조건문이다. 처리할 경우의 수가 많은 경우 switch문이 효율적이지만 if문보다 사용에 제약이 많아서 if문이 주로 사용된다. 1. if문 if.. 2022. 8. 31.
728x90
반응형