My footsteps
객체 본문
- 객체식
클래스명 변수명;
변수명 = new 클래스명( );
Tv t; // 참조변수 t를 선언한다. Tv를 작동하기 위해선 리모컨이 필요하니까 t가 리모컨인셈
t = new Tv ( ); // Tv라는 객체와 참조변수 t인 리모컨을 연결(=)해준다
이 식을 한줄로 쓰면
Tv t = new Tv( );
- 클래스 작성(설계도) > 객체생성(제품) > 객체사용
- 객체의 사용
t. channel= 7 ; // 티비인스턴스의 멤버변수 채널1의 값을 7로 한다
t. channelDown(); // 티비인스턴스의 매서드 채널다운을 호출한다
Sop("현재 채널은" + t.channel + "입니다.");
Tv t;
t = new Tv(); // new에 객체 주소가 담김
Tv t;
t = new Tv(); // 두개 타입이 꼭 일치해야함
- 클래스(=설계도) 변수3개와 매서드3개로 이루어져있다
- 그래서 총 6개의 구성요소가 생성 (흰색이 변수/회색이 매서드)
- 변수는 값을 입력하거나 대입하면 되고 매서드는 호출하면 된다
- 참조변수가 없으면 절대 객체를 사용할수없다
- 하나의 참조변수는 절대 두개의 객체를 제어할수없다. 하나당 하나씩만
https://youtu.be/p1ZZnM715ao?t=1147
- 객체배열 == 참조변수 배열
(객체배열) Tv tv1, tv2, tv3; // Tv타입 객체들 → (참조변수배열) Tv[] tvArr = new Tv[3]; // Tv타입 참조변수의 길이는3
- 객체를 생성해서 배열의 각 요소에 저장. 이 옮기는 작업을 꼭 해줘야 에러가 안남!!
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();
- 클래스 == 데이터+함수
- 함수는 명령문을 묶음이고, 어떤 작업이나 계산을 할때 데이터를 갖고 작업을 하니까 데이터(=클래스)와 같이 묶어둔다.
- 클래스영역 : iv,cv(static변수+iv) / 매서드 영역: lv
- 클래스 영역에는 선언문만 쓰기 가능하다 (대입연산자나 sop는 기재 불가능)
- 객체: iv를 묶어놓은것 / cv: 객체생성 필요없음. 자동생성(아무때나사용가능) / iv: 객체생성 필요함(객체만들어야 사용가능,매서드 종료시 자동제거) / lv : 지역변수
- 매서드란? : 문장들을 묶어놓은것 , 코드 간결화에 도움 , 하나의 매서드는 한가지 기능만 수행하도록 작성해야함
매서드 = 선언부 + 구현부
반환타입 매서드이름 (타입 변수명, 타입 변수명....) ▶ 선언부
{ } ▶ 구현부
int add (int a, int b...) ▶ 선언부
{ int result = a+b;
return result; } ▶ 구현부
* 입력값은 0~n개까지 가능하지만 출력은 오로지 0개나 1개만 가능하다
* 출력값이 0일때는 선언부에서 반환타입(int)부분을 void라고 적어줘야한다!!
- 지역변수 : 매서드 영역내에 선언된 변수
- 매개변수 : 입력값을 받는 변수
- 매서드호출 : 매서드이름(값1,값2...) ex) int add(3,5) // int는 add의값을 어떤형식으로 반환할지 적어둔것
*매서드의 실행 흐름
MyMath mm = new MyMath(); // 인스턴스 생성.
long value = mm.add(1L,2L); // 매서드 호출. add 더한다는 수식
long add(long a, long b) { // 1L,2L값이 각각 a,b에 저장됨
long result = a + b;
return result;
}
결과값 3이 value에 저장된다
- 반환타입이 void가 아닌경우 매서드에서는 반드시 reurn문이 필요하다.
- return문은 참일때만 실행된다. 거짓일때는 실행되지 않아서, 리턴문이 없다고 에러가 나는데 그럴때를 대비해 false의 리턴문도 만들어야한다
- 앞에 타입들이 일치할수 있도록 주의!
- 호출스택 : 매서드 수행에 필요한 메모리가 제공되는 공간. 매서드가 호출되면 호출스택에 메모리 할당, 종료되면 해제
'예습 > 이론' 카테고리의 다른 글
단일 상속,오버라이딩,패키지,import문,제어자,final,접근제어자,다형성 (0) | 2023.01.05 |
---|---|
기본형 매개변수, static과 인스턴스 매서드,생성자,상속 (0) | 2023.01.04 |
Srting배열,커맨드 라인,2차원 배열,객체 (0) | 2023.01.02 |
for문,while문,break문,배열 (0) | 2023.01.01 |
반올림,비교연산자,논리연산자,조건과 대입연산자,조건문과 반복문,if,switch (0) | 2022.12.31 |