2023.01.05
<배열>
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+" 후진"); } } |