#클래스
#패키지
#객체
#클래스
#속성, 멤버 변수
#함수와 매소드
#실행클래스
#객체
#객체지향프로그래밍
#클래스
#인스턴스
#인스턴스
#생성자
#생성자오버로딩
#디폴트생성자
> 필드 = 클래스에 포함된 변수
메소드 = 명령문의 집합
>
인스턴스
라고 한다.인스턴스 = 메모리에 할당된 객체
> 해당 클래스의 모든 메소드는 해당 클래스에서 생성된 모든 인스턴스가 공유
>
```java
접근제어자 반환타입 메소드이름(매개변수목록){//선언부
//구현부
}
```
하나의 클래스에 같은 이름의 메소드를 두 개 이상 정의할 수 없지만 메소드 오버로딩을 이용하면 같은 이름의 메소드를 중복하여 정의할 수 있다
> - 메소드 오버로딩
메개변수의 개수나 타입을 다르게 하여 같은 이름의 또 다른 메소드를 작성하는 것.
메소드 오버로딩을 사용함으로써 메소드에 사용되는 이름을 절약할 수 있다.
또한 메소드를 호출할 때 젠달해야 할 매개변수의 타입이나 개수에 대해 신경 쓰지 않고 호출할 수 있다
>
package 패키지 이름;
< 패키지 선언 문법
패키지 이름에는 패키지의 경로까지 포함한 풀 네임을 명시해야 함
자바의 모든 클래스는 반드시 하나 이상의 패키지에 포함되어야 하지만 자바 컴파일러는 소스 파일에 어떠한 패키지의 선언도 포함되지 않으면 기본적으로 이름 없는 패키지 (unnamed package)에 포함해 컴파일한다. 따라서 패키지를 명시하지 않은 모든 클래스와 인터페이스는 모두 같은 패키지에 포함하게 된다
1. import 패키지이름.클래스이름;
2. import 패키지이름.*;
public class Car{
String name;
int number;
}
car 클래스를 인스턴스화
Car c1 = new Car();
Car c2 = new Car();
//Car라는 인스턴스가 메모리에 2개 만들어 진다. 객체별로 name과 number라는 속성을 가진다.
속성 이용하기
//c1.name은 c1이 참조하는 객체의 name 을 의미.
c1.name = "소방차"; //c1이 참조하는 객체의 name을 소방차로 설정
c1.number = 1234; // c1.number = 1234란 c1이 참조하는 객체의 number를 1234 로 설정
c2.name = "구급차" //c2가 가리키는 객체의name을 구급차로 설정
c2.number = 1004; //c2가 가리키는 객체의 number를 1004로 설정
System.out.println(c1.name); //콘솔에 c1이 참조하는 객체의 name 을 출력합니다.
System.out.println(c1.number); //콘솔에 c1이 참조하는 객체의 number 를 출력합니다.
String name = c2.name; //c2가 참조하는 객체의 name 을 String 타입 변수 name 도 참조하게 합니다.
public class Car{
String name;
int number;
public Car(String n){
name = n;
}
}
car 클래스는 기본 생성자를 가지지 않는다 (기본 생성자로 car객체를 생성할 수 없다)
public class Car{
String name;
int number;
public Car(){
}
public Car(String name){
this.name = name;
}
public Car(String name, int number){
this.name = name;
this.number = number;
}
}
public class CarExam4{
public static void main(String args[]){
Car c1 = new Car();
Car c2 = new Car("소방차");
Car c3 = new Car("구급차", 1234);
}
}
String str = new String("hello");
썸네일: oneook