728x90
반응형
이전에 정리를 한 번 했었지만 한 번 더 정리해보겠습니다.
계속 공부를 하다보니 클래스 내부의 함수들과 변수들을 지칭하는 말들이 구분이 잘 되지 않네요,,
필드나 메소드, 인스턴스 등을 잘 구분해야합니다!
◎ Class 사용 예제
class Car1 { // 필드 (속성, 객체 변수) boolean powerOn; // false String color; // null int wheel; // 0 int speed; // 0 boolean wiperOn; // false // 메소드 (함수, 기능, function) 이름() void power() { powerOn = !powerOn; } void speedUp() { speed++; } void speedDown() { speed--; } void wiper() { wiperOn = !wiperOn; } } public class Car { public static void main(String[] args) { // 객체가 생성되지 않으면 클래스 사용이 불가능하다. // System.out.println("시동 처음 초기화 : " + Car.powerOn); // Car 클래스를 이용해서 mycar라는 객체 생성 : Car 클래스안에 필드와 메소드 이용 가능 Car1 mycar = new Car1(); System.out.println("시동 처음 초기화 : " + mycar.powerOn); System.out.println("차의 색상 초기화 : " + mycar.color); System.out.println("바퀴의 수 초기화 : " + mycar.wheel); System.out.println("속력 초기화 : " + mycar.speed); System.out.println("와이퍼 작동 초기화 : " + mycar.wiperOn); mycar.power(); System.out.println("시동 메소드 동작 : " + mycar.powerOn); mycar.power(); System.out.println("시동 메소드 다시 동작 : " + mycar.powerOn); mycar.color = "black"; System.out.println("현재 차의 색상 : " + mycar.color); } } // 출력 : // 시동 처음 초기화 : false // 차의 색상 초기화 : null // 바퀴의 수 초기화 : 0 // 속력 초기화 : 0 // 와이퍼 작동 초기화 : false // 시동 메소드 동작 : true // 시동 메소드 다시 동작 : false // 현재 차의 색상 : black
main에 코드를 전부 다 넣을 수 없기때문에 class를 별도로 생성합니다.public class Class_practice_2 { public static void main(String[] args) { Car1 mycar1 = new Car1(); Car1 mycar2 = new Car1(); mycar1.color = "red"; mycar2.color = "black"; mycar1.speedUp(); mycar2.wiper(); System.out.println("mycar1의 색 : " + mycar1.color); System.out.println("mycar2의 색 : " + mycar2.color); System.out.println(); System.out.println("mycar1의 속도 : " + mycar1.speed); System.out.println("mycar2의 속도 : " + mycar2.speed); System.out.println(); System.out.println("mycar1의 와이퍼 작동 여부 : " + mycar1.wiperOn); System.out.println("mycar2의 와이퍼 작동 여부 : " + mycar2.wiperOn); System.out.println(); System.out.println(mycar1); System.out.println(mycar2); } } // 출력 : // mycar1의 색 : red // mycar2의 색 : black // // mycar1의 속도 : 1 // mycar2의 속도 : 0 // // mycar1의 와이퍼 작동 여부 : false // mycar2의 와이퍼 작동 여부 : true // // java0112.Car1@15db9742 // java0112.Car1@6d06d69c
◎ Class 사용 예제(static(클래스 멤버), 인스턴스 멤버)
class Car2 { static int wheel = 4; int speed; } public class Class_practice_3 { public static void main(String[] args) { System.out.println(Car2.wheel); // System.out.println(Car1.speed); // 인스턴스 멤버를 사용하려면 참조 변수 생성 필요 Car2 mycar1 = new Car2(); System.out.println(Car2.wheel); System.out.println(mycar1.speed); Car2 mycar2 = new Car2(); System.out.println("<변경 전>"); System.out.println("mycar1.speed : " + mycar1.speed); System.out.println("mycar2.speed : " + mycar2.speed); System.out.println("mycar1.wheel : " + mycar1.wheel); System.out.println("mycar2.wheel : " + mycar2.wheel); mycar2.speed = 100; mycar2.wheel = 5; System.out.println("<변경 후>"); System.out.println("mycar1.speed : " + mycar1.speed); System.out.println("mycar2.speed : " + mycar2.speed); System.out.println("mycar1.wheel : " + mycar1.wheel); System.out.println("mycar2.wheel : " + mycar2.wheel); } } // 출력 : // 4 // 4 // 0 // <변경 전> // mycar1.speed : 0 // mycar2.speed : 0 // mycar1.wheel : 4 // mycar2.wheel : 4 // <변경 후> // mycar1.speed : 0 // mycar2.speed : 100 // mycar1.wheel : 5 // mycar2.wheel : 5
문제들만 풀다가 Class나 method를 사용하니 헷갈리는 부분들이 많아서 다시 정리를 한 번 더 해보았습니다!
한 번 더 보니 좀 더 이해가 잘되는 것 같아요!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
728x90
반응형
'BackEnd > Java' 카테고리의 다른 글
[java] 이것이 자바다 ch07 상속2 (0) | 2023.01.13 |
---|---|
[java] 이것이 자바다 ch07 상속 (2) | 2023.01.12 |
[java] 이것이 자바다 ch06 singleton(싱글톤) 패턴 (1) | 2023.01.12 |
[java] 이것이 자바다 ch06 패키지 (0) | 2023.01.11 |
[java] Getter와 Setter (1) | 2023.01.11 |