Java

2023.01.05

연을 2023. 1. 5. 20:41
728x90

<배열>

 

int[ ] m = {10, 20, 30, 40, 50};  -> m | 10 | 20 | 30 | 40 | 50 |

 

int[ ][ ] r = {                            

                  0    1    2    3    4                          r

            0  {10, 11, 12, 13, 14}                        | 10 | 11 | 12 | 13 | 14 |

            1  {20, 21, 22, 23, 24}     =>                | 20 | 21 | 22 | 23 | 24 |

            2  {30, 31, 32, 33, 34}                        | 30 | 31 | 32 | 33 | 34 |

                 }                                  

 

===>    이차원 배열 ex) r[세로/행][가로/열] / r[1][2] = 22 

 

       유효성 검사(Validation)

  • error : 실행이 되지 않음
  • warning : 경고
  • information : 정보

 

 

<함수>

displayMenu(alMenu,alPrice); ==> 굵은글씨 부분(배열)에 String 변수를 쓰게 된다면 타입 미스매치

 static void displayMenu(ArrayList<String> alM, ArrayList<Integer> alP){
           System.out.println("....");
 }

alMenu ==> alM          alPrice ==> alP

  반환값이 있는 함수 반환값이 없는 함수
type String / int / float
(데이터 타입 명)
void
return retrun 문이 필수
ex) retrun 값;
retrun 변수;
retrun 표현식;
retrun 상수;
retrun(을 쓰게 되면 함수 중단)
호출 변수 = 함수(___,___);
ex) String pstr = view(i, j)
함수(___,___);
ex) show(i, j)
예시 static string view(int a, int b){
     string str = 문자열 만들기
     return str;
}
=> 이 함수는 문자열만 만들고 main에서 찍는다
static void show(int a, int b){
    System.out.println("...");
}
=>이 함수는 문자열&찍는것 둘 다 한다.

함수를 선언

  • 함수가 어디에 맨앞에오든 뒤에오든 순서는 상관없다. 항상 void main이 먼저 시작한다.

 

<객체>

지역변수(local variable)

전(지)역변수(global variable)

 

객체 : 이름을 붙일 수 있는 유무형의 사물(개념), 클래스(class)&빈(bean)라고도 부른다.

ex) 사과, 배, 포도, 복숭아, 자동차, 포크레인, 메뉴, 마린, 저그 등...(유무형의 사물)

  Java C++
(속성)변수 field 멤버변수
(기능)함수 method 멤버함수

객체지향 프로그래밍 언어 특징

  • 캡슐화(Encapsulization) : 접근제한자
  • 상속(Inharitance)
  • 추상화(Abstraction)
  • 다향성(Polyoophism)  =  poly(여러개)+mopy - (얼굴)多形性 = 오버로딩(Overloading)

생성자 오버로딩(각각 다른 파라미터 갯수와 타입을 가지고 동일이름의 생성자가 "여러개" 선언될 수 있다)

메소드 오버로딩(각각 다른 파라미터 갯수와 타입을 가진, 동일이름의 메소드가 ""여러개 선언될 수 있다.)

메소드/연산자의 오버로딩(다형성)을 사용하려면 반드시 Paramerter(매개변수)의 타입이나 갯수는 달라야 한다.(반환값 타입은 상관없음)

 

<객체 설명을 위한 Car 예제 함수>

메인 car함수 car 함수

public class Study15 {

   public static void main(String[] args) {
      Car seltos= new Car();  //변수 seltos를 클래스 Car타입의 변수로서 선언.
      //실제 seltos가 생성된다.
      Car porter = new Car();
      
//      seltos.color = "white";
      seltos.setColor("white");
      seltos.model = "Seltos 2021";
      seltos.maxSpeed = 280;
      seltos.speed = 0;
      seltos.wheel = 4;
      seltos.personnel = 5;
      seltos.company = "kia";
      
      porter.color = "blue";
      porter.model = "Porter 2023";
      porter.maxSpeed = 180;
      porter.speed = 0;
      porter.wheel = 6;
      porter.personnel = 3;
      porter.company = "hyundai";
      //객체변수명.필드명 = 값;
      
      String colors = seltos.getColor();
      System.out.println("seltos.color="+seltos.getColor());
      System.out.println("seltos.model="+seltos.model);
      System.out.println("seltos.wheel="+seltos.wheel);
      System.out.println("porter.color="+porter.color);
      System.out.println("porter.model="+porter.model);
      System.out.println("porter.wheel="+porter.wheel);
      
      seltos.drive(60);
      porter.drive(40);
      seltos.turnLeft();
      porter.turnRight();
      seltos.stop();
      porter.stop();
   }

}
//선언(Declaration)-실체는 아직 없다.
public class Car {
   //속성(특성)- property->변수
   String color;   //색상
   int maxSpeed;   //최고속도
   int speed;      //현재속도
   String company;   //제조사
   String model;   //Sorento, Selots, Avante
   int personnel;   //최대 승객수
   int wheel;      //바퀴개수
   
   //기능(동작)-action/behavior->메소드(함수)
   void setColor(String str) {
      this.color = str;
   }
   String getColor() {
      return this.color;
   }
   void drive(int speed) {
      this.speed=speed; //왼쪽 스피는 위쪽 스피드 오늘쪽 스피드는 함수안에있는 speed
      System.out.println(this.model+" 현재속도는 "+this.speed+"km입니다.");
   }
   void stop() {
      this.speed=0;
      System.out.println(this.model+" 정지했습니다.");
   }
   void turnLeft() {
      System.out.println(this.model+" 좌회전");
   }
   void turnRight() {
      System.out.println(this.model+" 우회전");
   }
   void backward() {
      System.out.println(this.model+" 후진");
   }
}

위의 코드를 쉽게 풀이

728x90