[2023.10.25] 개발자 교육 23일 차 : 강의-복습, 클래스, 객체지향프로그래밍 [구디 아카데미]

DaramGee·2023년 10월 25일
0

오늘 정리

객체지향 프로그래밍이란? 객체를 정의하고, 각자의 기능들을 구현하며, 필요에 따라 기능 간 객체 간 연결을 구현하는 것이다.

static이란? 여러 객체를 생성했을 때에도 그 고유의 값을 유지할 수 있도록 해준다.

강의 내용

  • 객체지향 프로그래밍 : 객체를 정의하고, 각 객체가 제공하는 기능들을 구현하고, 그 기능 및 객체 간 협력을 구현하는 것

    • 객체? 인스턴스화를 통해 생성된 것
    • 인스턴스화? 클래스로 객체를 생성하는 것
    • 클래스? 객체를 만들기 위한 설계도(코드)
      • 구성멤버
        • 필드 : 전역변수(객체의 데이터 저장), 참조형타입의 경우, 초기값은 null임(크기 알 수 없음)
          int speed  = 100;
          --- -----    ----
          타입 필드 [ = 초기값 ];
        • 생성자 : new 연산자로 호출, 클래스에 하나 이상은 반드시 존재, 초기화 담당, 리턴 타입 없음
        • 메소드 : 객체의 동작, 호출 시 실행, 객체 간 데이터 전달 가능
          • 데이터 전달 방법
            • call by value(값에 의한 호출) →인자로 전달되는 값의 복사본이 함수 매개변수에 전달되는 방식
              class D1{
              	int methodA(int i, int j) {
              		System.out.println(i+", "+j);
              		return i+j;
              	}
              }
              public class DMain {
              
              	public static void main(String[] args) {
              		D1 d1 = new D1();
              		int i = 1;
              		int j = 2;
              		int hap = d1.methodA(i, j);     // 1, 2
              		System.out.println(hap);         //3
              	}
              }
            • call by reference(참조에 의한 호출) →인자로 전달되는 변수의 메모리 주소(참조)가 함수 매개변수에 전달되는 방식
              public void changeArray(int[] arr) {
                  arr[0] = 10;
              }
              
              int[] numbers = {5, 6, 7};
              changeArray(numbers);
              System.out.println(numbers[0]);  // 출력: 10
        • 메소드를 선언할 수 있다?
          • 리턴타입과 파라미터를 결정할 수 있어야 한다.
  • 학습이유?
    1. 기능처리 위한 클래스
    2. 데이터셋을 위한 클래스 - 복습 단단히 할 것
    3. 블릿←JSP학습 - Web기반 서비스 - Url 이용 - 네트워크프로그래밍(소켓) - main없음
    1. 모바일(앱)

    → 하이브리드 앱 개발 - 함수형프로그래밍언어 대세(자바에서도 람다식, 화살표함수 생김)


  • 정적멤버(static)

    • 여러개의 객체를 생성했을 때 고유의 값이 유지되도록 설정할 수 있음.

      • 예시 : static 변수를 활용한 인스턴스 생성

        public class Car {
        	private int carNum;
        	public Car() {
        		CarFactory.serialNum++; //스태틱인 serialNum을 사용할 수 있음 . 이를 재정의 및 치환하여 사용 
        		carNum = CarFactory.serialNum; //치환
        	}
        	public int getCarNum() {
        		return carNum;
        	}
        	public void setCarNum(int carNum) {
        		this.carNum = carNum;
        	}
        }

      • 예시 : 일반 전역변수와 static변수의 차이 확인
        class G{
        	int i = 1;
        	static int j = 10;
        }
        public class GMain {
        	public static void main(String[] args) {
        		//여러개의 인스턴스가 하나의 전변을 공유하고 싶다면 static으로 한다. 
        		G g = new G();
        		System.out.println(g.i); //1
        		System.out.println(G.j); //10
        		g.i++;
        		G.j++;
        		g = new G();
        		System.out.println(g.i); //1
        		System.out.println(G.j); //11
        		g.i++;
        		G.j++;
        		g = new G();
        		System.out.println(g.i); //1
        		System.out.println(G.j); //12
        	}
        }

강의 마무리

  • 객체지향 프로그래밍에 대해 전반적으로 이해해보기

0개의 댓글