2022. 11. 21. 21:55ㆍJAVA
클래스와 객체
클래스 란?
객체를 만들어 내기 위한 설게도 혹은 틀
연관되어 있는 변수와 메서드의 집합
객체 란?
소프트웨어의 세계에 수현할 대상
클래스의 선언된 모양 그대로 생성된 실체
클래스의 인스턴스(instance) 라고도 함
객체는 모든 인스턴스를 대표하는 포괄적 의미
클래스의 타입을로 선언되었을때 객체라고 함
인스턴스 란?
객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 함 객체는 클래스의 인스턴스
클래스는 설계도,객체는 설계도로 구현한 모든 대상
클래스의 타입으로 선언되었을때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 함
객체의 구성요소
속성(property)
멤버변수, 특성, 필드, 상태
기능(function)
메소드, 함수, 행위
변수와 메서드
종류 선언위치 생성시기
클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때
인스턴스변수 클래스 영역 인스턴스가 생성되었을 때
지역변수 메서드,생성자,초기화블록내부 변수 언어문이 수행될 때
class Sample{
int iv; //인스턴스 변수
static int cv; //클래스 변수
void method()
{
int lv = 0; //지역변수
}
}
메서드
특정 작업을 수행하는 일련의 문장들을 하나로 묶은것을 의미
1. 높은 재사용성
2. 중복된 코드 제거
3. 프로그램의 구조화
반환타입 메서드이름(타입 변수명, 타입 변수명,...){
}
예)
int add(int a, int b) //선언부
{
int result = x + y; //구현부
return result; //
}
class Tv
{
//인스턴스 변수
String color; //TV색상
boolean power; //전원상태(on/off)
int channel; //채널
//메서드
void power()
{
power = !power;
if(power)
{
System.out.println("전원켜짐");
}
else
{
System.out.println("전원꺼짐");
}
}
void channelUp(int a)
{
for(int i = 0; i < a; i++)
channel++;
// System.out.println("현재 채널은 " + channel + " 입니다.");
}
void channelDown(int a)
{
for(int i = 0; i < a; i++)
channel--;
// System.out.println("현재 채널은 " + channel + " 입니다.");
}
void color(String a)
{
color = a;
}
}
public class MySample1111_2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
/*
* 문제)
* 실행순서는 동일하게 하면서 실행결과는
* t1의 channel 값은 0입니다.
* t2의 channel 값은 0입니다.
* t1의 channel 값을 7로 변경했습니다.
* t1의 channel 값은 7 입니다.
* t2의 channel 값은 7 입니다.
*/
Tv t1 = new Tv();
Tv t2 = new Tv();
System.out.println("t1의 channel 값은" + t1.channel + "입니다.");
System.out.println("t2의 channel 값은" + t2.channel + "입니다.");
t1.channelUp(7);
t2 = t1;
System.out.println("t1의 channel 값을" + t1.channel + "로 변경했습니다.");
System.out.println("t1의 channel 값은" + t1.channel + "입니다.");
System.out.println("t2의 channel 값은" + t2.channel + "입니다.");
}
}
출력

'JAVA' 카테고리의 다른 글
| 2022.11.15 JAVA 14일차 오버로딩 (0) | 2022.11.22 |
|---|---|
| 2022.11.14 JAVA 13일차 객체지향언어 (0) | 2022.11.22 |
| 2022.11.10 JAVA 11일차 String클래스, 이중배열 (0) | 2022.11.21 |
| 2022.11.09 Java 10일차 배열복사 (0) | 2022.11.21 |
| 2022.11.08 JAVA 9일차 선택정렬 알고리즘 (0) | 2022.11.21 |