공부 45

Static

Static method: new를 이용해서 개체를 만들지않고 메서드를 호출한다 클래스: 개체보다 상위 개념에 있는 것. 클래스: 공장의 개념 개체 : 공장에서 찍어낸 제품의 개념 이라 생각하면 쉽다. public void method1(){} 은 개체의 메서드 public static void staticMethod(){} 는 클래스의 메서드 스태틱 메서드에서는 스태틱 필드값만 접근할 수 있다. 정적메서드에서 비정적 값에 접근 불가 왜냐, 비정적값은 개체에 속한 멤버이기 때문 개체수 만큼 멤버 변수가 생기는데 클래스는 단 하나기 때문. 스태틱 메서드에서는 수많은 개체 중 어떤 값을 가져올지 특정할 수 없다. 다만 비정적 → 정적으로 접근은 가능~

공부/OOP 2023.12.13

getter,setter

어차피 게터 세터로 프라이빗 데이터를 꺼내오고 조작할 수 있다면 그냥 Public으로 접근제어자를 지정하는게 좋지 않을까 생각할 수 있다. getter,setter Method를 사용하는 이유를 알아보자 멤버 변수를 저장하지 않고 필요할 때 마다 getter에서 계산이 가능하다. ex) 질량과 중력 멤버 변수를 계산하여 무게라는 값을 구할 수 있다. setter에서 추가적인 로직을 실행할 수 있다. ex) 나이라는 필드값 setting 시 음수 값이 들어올 경우 무시하는 로직을 짠다. 상속을 통해 다형성 구현 가능 멤버 변수는 그냥 앵간하면 Private으로 가자. 정보 숨기기를 통하여 캡슐화 진행. 또한 getter는 자유롭게 설정하되, setter는 충분히 고민 후 사용하도록 하자. 아무생각없이 게터..

공부/OOP 2023.12.13

OOP의 특성

1.캡슐화. 데이터와 그 데이터에 작용하는 메서드를 하나로 묶음 정보 숨기기: 개체안에 있는 데이터를 외부로부터보호 외부: 다른 클래스에 속한 객체들 2.상속 이미 존재하는 개체를 기반으로 확장된 개체를 만드는 방법 기존의 개체에 속한 데이터와 동작을 모두 물려받음 여기에 다른 데이터나 동작을 추가할 수 있음. 실용적인 용도: 코드 중복을 막음 3.다형성 OOP의 핵심 같은 지시를 내렸는데 다른 종류의 개체가 동작을 달리하는것. 같은지시: 동일한 함수 시그니처 호출 달리 동작: 개체의 동작에따라 실행되는 함수 구현 코드가 다름. 어떤 함수 구현이 실행될지는 실행중에 결정됨 다형성의 혜택을 받으려면 상속 관계가 필요. 실용적 용도: 부모의 형을 저장하는 배열에 모든 자식 객체를 저장. Animal[] 배열..

공부/OOP 2023.12.13

객체지향 프로그래밍의 필요성

절차지향 언어에서 사용하는 구조체(Struct)의 단점을 보완하기위해 객체지향 프로그래밍이 사용된다. 우선 구조체의 단점을 알아보자 구조체와 구조체 데이터의 동작을 담당하는 메서드 서로가 분리 되어있다. struct Human{ int age; float height; } void Walk(Human* human){ } // 절차지향언어인 C의 struct는 이렇게 데이터와 동작이 분리되어있다. 데이터와 각각의 동작을 일일히 찾아봐야하기때문에 코드가 복잡해진다. 이렇게 구조체안에 함수까지 담기위한 고민들속에서 객체지향 언어가 태어났다. OOP(Object Oriented Programming) 객체는 상태(속성)를 가질뿐만 아니라 동작도 할 수 있다. 프로그램을 구성하는 기본 요소를 객체로 보려는 노력...

공부/OOP 2023.12.13