public class ExampleClass{
int x = 10; // 필드
void printx(){...} // 메서드
EampleClass{...} // 생성자
class EampleClass{...} // 이너클래스
구성 요소중 생성자를 제외한 나머지 3가지 요소를 클래스의 멤버라 칭함
속성 과 기능이라는 두가지 구성요소로 이뤄져있다
클래스명 참조_변수명 = new 생성자();
person : 클래스영역 안에 들어가있음
p : 참조변수로 스택 영역 안에 들어있음
new : 힙 메모리에 저장
Person() : 생성자 → 객체
클래스에 포함된 변수를 의미
- 클래스 변수
- 인스턴스 변수
- 지역 변수
class Example{
int a; // 인스턴스 변수
static int b; //클래스 변수
void metod(){
int c = 0; // 지역 변수 , {}블록 안에서만 사용
}
}
클래스 변수
static
이라는 키워드를 통해 선언클래스명.클래스변수명
을 통해 사용 가능인스턴스 변수
new 생성자()
를 통해 인스턴스가 생성될때 만들어진다.지역 변수
매서드 내에 선언되며 메스드 내 {} 에서만 사용 가능한 변수
스택 메모리에 저장 되어 메서드 종료 된 즉시 함께 소멸
+ 초기값 설정 필수
public class StaticTest{
psvm{
StaticField staticfield1 = new StaticField(); // 객체생성
StaticField staticField2 = new StaticField();
staticField1.num1 = 100;
staticField2.num1 = 1000;
System.out.println(staticField1.num1); //100출력
System.out.println(staticField2.num1); // 1000출력
staticField1.num2 = 150;
staticField1.num2 = 1500;
System.out.println(staticField1.num2); //1500 출력
System.out.println(staticField2.num2); //1500 출력
}
}
class StaticField{
int num1 = 10;
staic int num2 = 15;
}
num1 은 인스턴스 변수이고 num2는 클래스 변수여서 같은 값을 갖게 된다.
특정 작업을 수행하는 일련의 명련문들의 집합
puvlic static int add(int x, int y){ // 메서드 시그니처
int result = x+y; //메서드 바디
return result;
}
반환타입이 int여서 return 값이 필요 하지만 void
일 경우에는 return 값 불 필요
하나의 클래스 안에 같은 이름의 메서드를 여러개 정의한 것
쓰는 이유는 하나의 메서드로 여러 경우의 수를 해결 가능
오버로딩 성립 조건
메서드의 이름이 같아야 함
매개변수의 개수 또는 타입이 달라야함
public class Overloading {
public static void main(String[] args) {
Shape s = new Shape(); // 객체 생성
s.area(); // 메서드 호출
s.area(5);
s.area(10,10);
s.area(6.0, 12.0);
}
}
class Shape {
public void area() { // 메서드 오버로딩. 같은 이름의 메서드 4개.
System.out.println("넓이");
}
public void area(int r) {
System.out.println("원 넓이 = " + 3.14 * r * r);
}
public void area(int w, int l) {
System.out.println("직사각형 넓이 = " + w * l);
}
public void area(double b, double h) {
System.out.println("삼각형 넓이 = " + 0.5 * b * h);
}
}
//출력값
넓이
원 넓이 = 78.5
직사각형 넓이 = 100
삼각형 넓이 = 36.0
개념 공부하면서 각 개념은 이해가 되는데 막상 이것을 어디에 써야할지 이해가 잘 안되는데 블로깅을 하면서 이해가 한층 더
잘되서 다행이다...