Jam's story
15일차 본문
클래스 | 객체를 정의해 놓은것, 객체의 설계도 또는 틀 |
객체 | 실제로 존재하는 것, 논리나 무형적인 것도 포함 |
인스턴스화 | 클래스로부터 객체를 만드는 과정 |
인스턴스 | 클래스로부터 만들어진 객체 ,어떤 클래스로 부터 만들어지는 지를 나타내기 위함 객체는 모든 인스턴스를 대표하는 포괄적인 의미 new 연산자에 의해 힙 영역에 생성된 객체= 메모리 상에 있음 |
메소드 | 기능 |
속성 | 멤버변수, 특성, 필드 ,상태 |
클래스의 구성요소 | 멤버 1)속성(멤버변수)[= 필드 2)기능(멤버함수) = 메소드 |
클래스 선언형식 | [접근지정자][기타제어자] class 클래스명 [extends 클래스명 ] [ implements 인터페이스명] |
OOP | 상속성 다양성-[인터페이스] 캡슐화 은닉화 추상화 |
src- 자바파일 소스파일
bin- .class 컴파일된 파일
접근지정자
- public
- defualt - pacakge를 선택하면 default 가 된다.
- private 비활성화
- protected 비활성화
private, protected = 독립적인 클래스로 선언할때는 사용할 수없는 클래스이다.
중첩클래스로 선언할때는 사용할 수 있다.
public | 접근제한이 없다. 패키지 내부/외부 어디서나 상속가능 |
protected | 캍은패키지, 다른패키지의 자손클레스에서 접근이 가능 |
defualt | 같은 패키지내에서만 패키지 내부에서만 상속, 참조 가능 패키지 외부에서는 상속만 가능 |
private | 같은 클래스내에서만 |
기타제어자
final | 최종(마지막) 클래스- 상속개념 |
abstract | 추상클래스 -추상화 |
static | 비활성화 , 중첩클래스 선언할 때만 사용됨 |
인스턴스화 하지않으면 생기는 오류
클래스를 여러개 선언할 수 있지만, public으로 선언된 클래스는 1개만 가능하고 파일명이랑 동일해야한다.
나머지 클래스들은 public을 빼야한다.
package days15;
/**
* @author 지민
* @date 2022. 3. 10. - 오전 10:08:44
* @subject
* @content
*
*/
class Tv { //extends java.lang.Object 생략
public String color;
public boolean power;
public int channel;
void power() {
power =!power;
}
void channelUp() {
channel++;
}
void channelDown() {
channel--;
}
}
class TvTest3{
public static void main(String[] args) {
Tv t1=new Tv();
Tv t2=new Tv();
System.out.println(t1.channel);
System.out.println(t2.channel);
t2=t1; //t1이 저장하고 잇는 주소를 t2에 저장한다.
t1.channel=7;
System.out.println(t1.channel);
System.out.println(t2.channel);
}
}
Tv t1=new Tv();
Tv t2=new Tv();
t2=t1;
t1이 가지고 있는 주소를 t2에 저장한다.
t2에 t1의 주소가 들어가므로, t2에는 t1의 값이 저장되어있다.
t2가 원래 사용하고 있던 인스턴스는 이제 사용할 수 없다.
하나의 참조변수로 여러개의 인스턴스를 가리킬 수 없다.
둘이상의 참조변수로 하나의 인스턴스를 가리키는건 가능하다 .
public int sum(int...m)
int....m ==int[] m
필드 초기화 X - > 각 자료형의 초기값으로 초기화가 되어져 있더라...
Comments