Java OOP (Object-Oriented Programming) (w3schools.com)
Java OOP
Java OOP
- OOP란? Object Oriented Programming 객체 지향 프로그래밍의 약자다.
- 절차 지향 프로그래밍이 프로시저, 메소드를 작성한다면,
- 객체 지향 프로그래밍은 데이터와 매소드를 모두 포함한 객체를 만들어낸다.
- OOP의 장점
- 빠르게 실행 가능함
- 코드 유지 보수에 용이함
- 재사용이 용이함
- 클래스와 객체
- 클래스 : 객체를 만드는 틀
- Object 객체 : 클래스로 만들어낸 인스턴스
Java Classes/Objects
public class Main {
int x = 5;
public static void main(String[] args) {
Main myObj = new Main();
System.out.println(myObj.x);
}
}
객체를 여러 개 생성해줄 수도 있다.
public class Main {
int x = 5;
public static void main(String[] args) {
Main myObj1 = new Main();
Main myObj2 = new Main();
System.out.println(myObj1.x);
System.out.println(myObj2.x);
}
}
Java Class Attributes
클래스 안에 있는 변수를 'attribute'라고 한다.
public class W3Schools_OOP {
public static void main(String[] args){
int x = 5;
int y = 3;
}
}
예를 들면 위 예시에서 x, y가 W3Shools_OOP 클래스의 attribute이다.
public class W3Schools_OOP {
int x = 5;
int y = 3;
public static void main(String[] args){
W3Schools_OOP myobj = new W3Schools_OOP();
System.out.println(myobj.x);
System.out.println(myobj.y);
}
}
Java attribute에 접근할 때는 클래스 객체를 만들고 그 뒤에 .을 붙여 속성에 접근하면 된다.
public class W3Schools_OOP {
int x = 5;
int y = 3;
public static void main(String[] args){
W3Schools_OOP myobj1 = new W3Schools_OOP();
W3Schools_OOP myobj2 = new W3Schools_OOP();
System.out.println(myobj1.x);
System.out.println(myobj1.y);
System.out.println(myobj2.x);
System.out.println(myobj2.y);
}
}
여러 개의 객체를 만드는 것이 가능하고,
public class W3Schools_OOP {
int x = 5;
int y = 3;
String fname = "John";
String lname = "Doe";
int age = 24;
public static void main(String[] args){
}
}
다양한 타입의 attribute을 생성하는 것 또한 가능하다.
Java Class Methods
public class W3Schools_OOP {
public static void main(String[] args){
myMethod();
}
static void myMethod(){
System.out.println("Hello world!");
}
}
기본적으로 매소드를 생성하고 호출하는 방식은 위와 같다.
- static 키워드를 사용한 매소드는 인스턴스를 만들지 않아도 호출할 수 있다.
- 예를 들면 다음과 같다.
className.methodName();
public class W3Schools_OOP {
public static void main(String[] args){
myMethod();
W3Schools_OOP newInstance = new W3Schools_OOP();
newInstance.myPublicMethod();
}
static void myMethod(){
System.out.println("static method can be called without creating object");
}
public void myPublicMethod(){
System.out.println("non static method must be called by creating objects");
}
}
- 인스턴스를 사용하여 매소드를 사용하기
public class Speed {
public static void main(String[] args){
Speed myCar = new Speed();
myCar.fullThrottle();
myCar.speed(100);
}
public void fullThrottle(){
System.out.println("The car is going as fast as it can!");
}
public void speed(int maxSpeed){
System.out.println("Max speed is : "+maxSpeed);
}
}
- 여러가지 클래스를 사용하기
public class Main {
public static void main(String[] args){
Speed myCar = new Speed();
myCar.fullThrottle();
myCar.speed(100);
}
}
intelliJ 프로젝트에 위치하는 클래스를 이용하는 경우,
파이썬처럼 모듈을 import하는 과정을 거칠 필요 없이 바로 객체를 생성해줄 수 있다.
'Computer Science > Java' 카테고리의 다른 글
디자인 패턴, 클린 코드, OOP 클린 코드 원리 SOLID 개념과 예시 (0) | 2022.11.01 |
---|---|
W3Schools 자바 | #1 자바 매소드 (0) | 2022.09.05 |
W3Schools 자바 | #0 자바 튜토리얼 (입출력, 주석, 변수, 타입, 연산자 등) (1) | 2022.09.01 |
Java | 객체 지향 디자인 패턴 (0) | 2022.05.24 |