객체지향 파트부터 수업을 들으며 이해가 가지 않는 부분이 생겨서 자바의 정석책을 통해 좀 더 지식을 습득하고 그동안 배운 내용을 마저 정리 하려고 한다!
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
객체지향은 자바의 꽃!.. 일단 외우는게 중요하고 짧게 나만의 핵심을 정리해서 매일 봐줘야한다.
객체지향 (클래스와 객체)
클래스의 정의 클래스란 객체를 정의한것
클래스의 용도 클래스는 객체를 생성하는데 사용
클래스
public class Hello2 {
class Hello3{}//클래스는 하나의 소스파일에 public 클래스가 하나만 존재할수 있다.
//public 클래스의 이름은 소스파일 이름과 일치 해야한다.
//public이 아닌 클래스는 더 추가가능하다.
public static void main(String[] args) {
}
객체의 정의 실제로 존재하는 것 사물또는 개념
객체의 용도 객체가 가지고 있는 기능과 속성에 따라 다름
클래스는 설계도 -> 객체는 사물
필요한 기능을 구현하기 위해 클래스를 통해 설계를 한후 객체를 통해 기능을 사용한다.
tv설계도-> tv
객체(인스턴스)의 구성요소
속성 : 변수
String color;
boolean power;
기능 : 메서드
void power(){
}
void chanelUp(){
}
객체의 생성
변수명 참조변수 = new 변수명()
->Tv t = new Tv();
객체의 사용
항상 객체의 참조변수(리모콘)을 통해사용
t.channel = 7;
t.channelDowm();
Tv 클래스
package javajungsuck;
public class TvApp {
public static void main(String[] args) {
Tv tv = new Tv();
Tv tv1 = new Tv();
tv.channelDown();
System.out.println("현재 채널은"+tv.channel+"번 입니다");
//전원 상태변경 확인
System.out.println(tv.power);
tv.powerUpDown();
System.out.println(tv.power);
//같은 주소값을 가리키게 해보기
tv1.channel=3;
System.out.println(tv1.channel); //3
tv1 = tv; //tv1의 주소값이 tv와 같은 주소값을 가리키게 함
System.out.println(tv1.channel); //6
}
}
//이게 되네 ? 이런방식은 처음해본다 한 클래스안에 2개의 클래스정의 !!
class Tv {
int channel = 7;
boolean power = false;
//채널내리기
void channelDown() {
channel-=1;
}
//전원상태 바꾸기
void powerUpDown() {
power=!power;
}
}
객체배열
변수명 [ ] 참조변수 = new 변수명[갯수];
참조변수 배열이라고 불리운다.
배열을 만든후 객체를 채워넣어줘야한다.
public class ClassArray {
public static void main(String[] args) {
//객체 배열 생성
Tv[] t = new Tv[4];
//객체배열 생성후 채워넣어줘야한다
t[0] = new Tv();
t[1] = new Tv();
t[2] = new Tv();
t[3] = new Tv();
}
}
클래스안의 영역
클래스 영역과 메서드 영역 2가지로 나뉘고 변수의 종류는 3가지 인스턴스 변수,클래스 변수, 지역변수
package javajungsuck;
public class C1 {
//클래스 영역
//변수,메서드 선언 순서는 상관없다
int y; //iv 객체변수 인스턴스가 생성되었을때 만들어진다. 객체생성을 해야지 쓸수 있다.
static int x; //cv 클래스변수 클래스가 메모리에 올라갈때 생성된다. 쉽게 생각하면 아무때나 사용가능
public static void main(String[] args) {
//메서드 영역
int a; //Lv 지역변수 변수선언문이 실행 되었을때 실행된다. 메소드 끝나면 자동으로 제거된다.
}
}
'개발공부 2023 ~03~13' 카테고리의 다른 글
(중복메소드(오버로딩) , 기본생성자 및 this, this()) (0) | 2023.03.26 |
---|---|
변수와 메서드(인스턴트, 클래스, 참조형 매개변수, 메서드) (0) | 2023.03.26 |
7일차 복습 ( 은행 객체 생성,코딩 시 신경 써야 할 점 ) (0) | 2023.03.21 |
7일차 복습 (메소드의 종류, 계산기 객체 만들어보기) (0) | 2023.03.21 |
7일차 복습 (배열객체 , 메소드의 구조) (0) | 2023.03.21 |