본문 바로가기

BackEnd/Java

[java] class

728x90
반응형

이전에 정리를 한 번 했었지만 한 번 더 정리해보겠습니다.

계속 공부를 하다보니 클래스 내부의 함수들과 변수들을 지칭하는 말들이 구분이 잘 되지 않네요,,

필드나 메소드, 인스턴스 등을 잘 구분해야합니다!

 

https://bobo12.tistory.com/16

 

[java] 자바의 클래스(class)란?

1. 객체지향 언어 현실에 존재하는 사물과 개념들을 소프트웨어적으로 구현하고, 그 객체들이 상호작용하여 데이터를 처리하는 방식입니다. 특징 (1) 코드의 재사용성 : 새로운 코드 작성시 기존

bobo12.tistory.com

 

◎ 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
반응형