Cohe
07 Class, Method, Package 본문
728x90
반응형
클래스
- 인스턴스 객제 생성
- 객체 생성 명령어
- ClassName instanceName = new Constructor();
- 생성자는 클래스 이름과 같음
- 생성자의 역할은 맴버변수(속성) 초기화 혹은 클래스 구동을 위한 사전동작을 구현
package obj;
public class Pen {
//클래스 안에 코드
//attribute (속성, 멤버변수), constructors (생성자), method
//attribute (속성, 멤버변수)
public String color;//패키지 관계 없이 불러 올 수 있음
int price; //default 같은 패키지 내에서 불러올 수 있음
//메서드
public void write(){
System.out.println("hello world");
}
public Pen(){ //기본 생성자
super();
}
}
- 클래스 사용하는 이유
- 대량으로 코드를 반복적으로 사용하는 경우에 사전에 틀을 만들어 사용하기 위해서 클래스 사용함.
- 코드 재사용하여 코드를 최소화 하여 작업할 수 있음.
- 생성자
- 생성자는 반드시 클래스 안에 하나 이상 선언해야 함
- 선언하지 않으면 JVM이 대신하여 기본 생성자를 자동으로 만들어줌
- 기본 생성자는 매개변수를 가지고 있지 않은 형태로 자동으로 만들어지는 경우에는 내용이 없다
- 생성자 만드는 규칙
- 생성자 이름은 클래스 이름과 대소문자까지 정확히 같아야 한다. 클래스 이름과 다른 이름으로 만들면 그것은 메서드 취급
- 생성자는 메서드와 달리 반환 유형을 적지 않는다.
- 생성자는 다른 유형으로 여러개 생성이 가능하다. → 생성자 오버로딩
- over Riding : 상속의 개념
- 오버로딩 : 이름이 같음
- alt+shift+s : 생성자 자동생성
- 생성자 예시
// 생성자 생성 예시....
public Pen() { // 기본 생성자...
color = "black";
}
// 멤버 초기화 생성자!
public Pen(String init_color) {
color = init_color;
System.out.println("생성자를 이용하여 color값 초기화");
}
public Pen(String init_color, int init_price) {
color = init_color;
price = init_price;
System.out.println("생성자를 이용하여 color, price 값 초기화");
}
public Pen(String color, int length, int price) {
this.color = color;
this.length = length;
this.price = price;
}
// 오버로딩으로 구분되는 생성자 혹은 메서드는 매개변수의 숫자와 타입에 의해서 결정!!
public Pen(int length, String color) {
this.color = color;
this.length = length;
}
public int getPrice() {
return price;
}
메서드
- 메서드의 반환 설정은 키워드 'return'을 사용합니다.
- return은 메서드 실행을 끝내고, 결과 값을 호출될 부분에 반환하는 키워드
- 사용법은 return '반환값' 으로 사용하고, 반환 값이 없이 사용되는 return은 함수의 종료만을 의미하게 되어 호출된 위치로 이동하게 됨.
- 만약 return에 연산식을 사용하여 처리하는 그 결과 값과 제어(호출위치로 이동)가 함께 동작합니다.
매서드 구분, 매개변수와 반환값으로 구분...메서드 형식(선언 방법) <반환 유형> <메서드 식별자-이름>(매개변수) { 기능 상세부분... }
- 유형1 : 매개변수가 있고, 반환값이 있는 경우! 전달 인자(o), 반환값(o)
- 유형2 : 매개변수가 있고, 반환값이 없는 경우! 전달 인자(o), 반환값(x)
- 유형3 : 매개변수가 없고, 반환값이 있는 경우! 전달 인자(x), 반환값(o)
- 유형4 : 매개변수가 없고, 반환값이 없는 경우! 전달 인자(x), 반환값(x)
** 매개변수(parameter)
- 매개변수는 메서드가 실행될 때에 필요한 데이터를 외부로부터 받기 위해서 사용함.
- 매개변수도 변수의 일종으로 데이터 타입과 함께 선언해서 사용해야 합니다. 단, 초기화는 하지 않음
- 매개변수를 여러개 선언할 수 있고, 메서드가 외부로부터 받을 데이터가 없다면 선언하지 않아도 됨.
그리고, 매개 변수가 없다면 반환 유형 처림 void는 사용하지 않고, 소괄호로 안을 비워 둡니다.
** 반환 유형(return type)
- 반환 유형은 메서드가 실행한 후에 메서드를 호출한 곳에서 반환하는 값을 전달하는 데이터...
- 메서드는 반환값이 있을 수 있고, 없을 수도 있는데 없는 경우에는 반환 유형에 "void"를 사용합니다.
- 반환값이 있는 메서드를 호출할 때는 해당 반환 유형에 맞는 변수에 반환값을 저장해야 합니다.
- 메서드 실행에 결과값을 반환할 때는 return 키워드를 사용합니다.
오버로딩
- 오버로딩으로 구분되는 생성자 혹은 메서드는 매개변수의 숫자와 타입에 의해서 결정!!
- 오버로딩을 위해서는 이름이 같아야 한다.
- 접근 제한자나 반환유형은 오버로딩에 영향을 주지 않는다
- 매개변수의 유형(타입)이 달라야 한다.
- 매개변수의 개수 및 순서가 달라야 한다.
패키지
패키지란?
서로 연관된 클래스들의 묶음을 말함(package) 패키지 안에는 여러 클래스를 포함하고 있음.
특정 패키지를 불러서 사용하려면, import 키워드를 사용...
ex) import java.util.Arrays
import [패키지명].[클래스명] => 패키지명 : java.util , 클래스명 : Arrays
패키지 명은 처음부터 끝까지 전체 패키지를 모두 표현해야 함.
- 특정 패키지내에 클래스를 호출하는 경우,
import java.util.Arrays
import java.util.Scanner // 입력 클래스...
import java.io.PrintWriter // 화면 출력 클래스 - 특정 패키지 내에 모든 클래스를 호출하는 경우,
import java.util.*- 클래스 생성시에 현재 클래스의 패키지 위치를 선언... (생략시 default 패키지를 가리킴 - src폴더 위치... )
- 패키지를 가리키는 클래스 내의 키워드는 package 키워드를 사용! 다른 패키지 위치에 있는 클래스는 불러올 때는 import 키워드를 사용함...
- 클래스 생성시에 현재 클래스의 패키지 위치를 선언... (생략시 default 패키지를 가리킴 - src폴더 위치... )
패키지 생성 규칙
- 패키지 이름은 영문 소문자를 이용하는 것을 권장!
- 대분류와 소분류 패키지들을 구분. 구분은 "."(dot)을 이용함.
- 루트 패키지 이름은 java. 으로 시작할 수 없음.
- 자바의 키워드들도 패키지 이름으로 사용할 수 없음.
- import 시에는, 중분류가
728x90
반응형
'개발 언어 > JAVA' 카테고리의 다른 글
09 Usage Modifier (0) | 2024.03.15 |
---|---|
08 상속, modify (0) | 2024.03.14 |
회원관리 시스템 작성 (0) | 2024.03.12 |
06 class (0) | 2024.03.12 |
05 While문~ 변수 (0) | 2024.03.11 |