Elice --Cloud--Track/4~7 주차

3주차 블로그 챌린지

babystep 2023. 12. 10. 23:25
728x90

  • 배열 
    • 선언 
      • 자바에서의 배열선언은 아래와 같이 한다. 
      • String[] stringValue = new String[10]; 
      • 위 그림의 (1) 부분의 String[] 에서 String[10] 으로 하면 안 된다.
        왜냐하면 선언 되는 시점은 할당되는 사이즈를 미리 알 수 없기 때문이다.

      •  그래서 자바에서 배열 사이즈의 결정은 (2)부분의 직접 new 해주는 부분에서 10으로 지정해주게 된다. 

    • 배열의 길이 
      • 자바에서 배열의 길이는 아래와 같이 가져올 수 있다. 

String[] stringArray = new String[10];
int length = stringArray.length;  

      • 배열의이름.length

    • 다차원 배열
      • 2차원 배열의 선언과 할당 방법 
        • ( 1 ) 선언과 동시에 할당
           int[][] twoDimensionalArray = new int[2][3];

        • ( 2 )  선언후 나중에 할당
          int[][] twoDimensionalArray;
          twoDimensionalArray = new int[2][3];

        • ( 3 ) 선언과 동시에 초기화 
          int[][] twoDimensionalArray = { { 1, 2, 3 }, { 4, 5, 6 }  } ;
          • 위 코드는 int[2][3] 배열을 선언과 동시에 초기화한것이다.  
          • twoDimensionalArray.length  는 2 이다.
          • twoDimensionalArray[0].length  는 3  이다.  
  • Java 에서 문자열  입력 받기 
    • 아래 java.util.Scanner 를  임포트 해주어야한다.
      • import java.util.Scanner; 
    • 사용법은 아래처럼 Scanner를 생성후 , nextLine 함수를 호출해서 사용한다.  
      • Scanner scanner = new Scanner(System.in);
      • String inputString = scanner.nextLine();  // 입력받음과 동시에 inputString에 값 대입 
    • Java 에서 scanner 클래스의 입력 함수들
      • nextLine() // 문자열 , String 입력 
      • nextBoolean() // boolean true / false 입력 
      • nextShort() // 정수 short 입력 
      • nextBigDecimal() // 실수 BigDecimal (범위가 double보다 크다. ) 
      • nextDouble /// 실수  double 
      • nextInt // 정수 int 

 

 

  • 객체지향 프로그래밍 (Object Oriented Programming )
    • 의미   
      • 객체 ==  (Object) 
      • 지향  == ( Oriendted ) 
      • 단어 뜻 그대로 모든 사물을 객체 단위로 설계하도록 지향해서 프로그래밍하는것 
    • 객체지향프로그래밍( OOP) 의 특징 
      •  특징
        • 추상화 ( Abstraction ) 
        • 캡슐화 ( Encapsulation ) 
        • 다형성 ( Polymorphism ) 
        • 상속성 ( Inheritance ) 
          • 번외 : 외우는 법 :
            착한닭살 (차칸닭살 , ㅊㅋㄷㅅ ) 추(착)상화 / 캡(칸)슐화 / 다(닭)형성/ 상(살)속 😅
      • 특징의 의미 와 예시 
        • 추상화 ( Abstraction )
          • 객체들의 공통적인 특징을 묶어서 추상적인 공통점으로 모으는 것
          •  예시 : 소, 돼지 ,고양이, 닭, 강아지
            • 위 소 , 돼지, 고양이, 닭 , 강아지는 동물로 묶인다.
            • 모두 짖는다 라는 행위를 할수있다.
            • class animal {
                  public void bark() { 
                      System.out.println(" 짖기 " ) ;
                  } 
              }
        • 캡슐화 ( Encapsulation ): 
          • 객체를 독립적으로 분리시키고, 외부에서 데이터에 접근하지 못하게 보호
          • 소, 돼지, 고양이, 닭, 강아지는 모두 태어난 날짜를 변경할 수 없다. 
            • class animal {
                  private int birthDay ; // <--- private로 선언하여서 다른 객체에서 태어난 날짜를 변경할 수 없게한다. 

                  animal ( int birthDay) {
                      this.birthDay = birthDay;  // <--- 생성될때 한번만 셋팅하게 한다. 
                  }

                  public void Bark() {
                    System.out.println(" 짖기 " ) ;}
                  } 
              }
        • 다형성 ( Polymorphism ) :
          • 하나의 형태가 다양한 성질을 가질수 있는것 
          • 아래 animal 을 상속받은 dog과 cat은 동일한 함수명 bark() 를 호출해도 각각 강아지는 멍멍 고양이는 야옹야옹 을 출력한다.  
            • class animal {
                  public void bark()
                  {
                      System.out.println("짖기");
                  }
              }

              class dog extends animal {
                  public void bark()
                  {
                      System.out.println("멍멍");
                  }
              }
              class cat extends animal {
                  public void bark()
                  {
                      System.out.println("야옹 야옹");
                  }
              }
            • 위 코드는 오버라이딩( 상속된 부모 클래스의 함수 재정의,  수직관계 ) 을 통한 다형성을 표현한 예시 이다. 
            • 오버로딩 ( 수평관계, 클래스안 동일한 이름에 다른 매게변수 )  또한 다형성을 나타내는 기능이다. 
        • 상속성 ( Inheritance )
          • 미리 만들어둔 객체를 다른 객체를 만들때 상속하여 재사용하는것. 

          • 다형성 vs 상속성으로 보자면, 다형성이  상속성보다 더 커다란 의미라 볼 수 있다.
            왜냐하면 다형성은 상속이 아니더라도 오버로딩( 한클래스 내에서 매개변수형태가 다른  동일한 이름의 함수 만드는것) 으로 나타 낼 수 있기 때문이다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

추천인 코드 : o6i4B3y95   :  앨리스트랙 참여 링크 

 

 

#엘리스트랙 #엘리스트랙후기 #온라인코딩부트캠프 #온라인코딩학원 #백엔드학원 #개발자국비지원 #개발자부트캠프 #국비지원부트캠프 #DOCKER #백엔드 #자바스프링 #스프링강의 #백엔드인강 #RESTAPI #스프링개발자

728x90