클래스 하위, 클래스선언
클래스의 기본문법
객체생성문법, 객체 선언 및 메소드 사용 오류 예시
public static void main(String[] args) {
//pt라는 객체를 선언 후 생성
//객체 pt는 참조변수
//일반변수 : 타입이 기본타입으로 된 변수
//참조변수 : 타입이 기본타입이 아닌 변수
Point pt1=null; //선언만 되고 생성이 안된 상태
Point pt2= new Point(); //pt라는 객체를 선언 후 생성
//pt1.print(); //에러 발생 : 객체가 생성되지 않은 상태에서 메소드를 호출했기 때문에
pt2.print(); //작동됨 : 제품이 만들어지 상태라서
pt2.move(4, 5);
pt2.print();
기본 생성자, 기본 유형이 아닌 생성자 생김새 & Scanner를 통한 생성자 설명
클래스명 = 메소드명(* public뒤에 클래스 명이라고 쓰여있는게 사실은 메소드명이었단 얘긴듯)
//생성자를 설명하기 위한 Scanner 입력
Scanner scan = new Scanner(System. in);
//클래스 객체 = new [생성자 ]
//Scanner라는 클래스를 이용하여 scan 객체를 선언하고, Scanner(System.in) 생성자를 이용하여 객체를 생성
//new가 객체를 만들고, 만들어진 객체에 멤버변수를 Scanner(System.in) 생성자를 이용하여 초기화.
int x = scan.nextInt();
scan.close();
배열 정렬: 버블 정렬
public static void main(String[] args) {
/* 배열 정렬: 버블 정렬
* - 옆에 요소와 비교하여 정렬하는 방법
* 예시)
* 5 4 6 9 8 7 10 [0,1번지 비교]
* 4 5 6 9 8 7 10 [1,2]
* 4 5 6 9 8 7 10 [2,3]
* 4 5 6 9 8 7 10 [3,4]
* 4 5 6 8 9 7 10 [4,5]
* 4 5 6 8 7 9 10 [5,6]
* 4 5 6 8 7 9 10 =>10이 확정 (0,1번지 비교에서 5,6번지 비교까지오는게 한 번, 이 절차를 여러번 함)
* 4 5 6 8 7 9 10 [0,1 번지 비교]
* 4 5 6 8 7 9 10 [1,2]
* 4 5 6 8 7 9 10 [2,3]
* 4 5 6 8 7 9 10 [3,4]
* 4 5 6 7 8 9 10 [4,5] =>9가 확정 (이미 10이 확정이라 5,6번지 비교는 안함)
* (이아래는 0,1번지가 확정 될 때까지 버블 정렬을 진행함. 정렬이 끝났어도 이 방법은 계속 정렬하기때문에 효율이 떨어짐)
* 두 수를 비교해서 작은 숫자를 앞으로 보냄
* ==> 작은 반복문의 횟수:배열에서 두 수의 비교 (6=> 5=> 4=> 3=> 2=> 1번) = 6-i(반복횟수) < 7(배열의 갯수)-i(=arr.length-i)
* (0=>1=>2=>3=>4=>5(큰 반복횟수의 i값)
* */
int arr[]=new int []{5,4,6,9,8,7,10};
printArray(arr);
for(int i=0; i<arr.length-1; i+=1) { //큰 줄 5부터 10까지 확정되는 것
for(int k=0; k<arr.length-i-1; k+=1) { //작은줄= 두 수를 비교하고, 마지막 확정은 빼기
if(arr[k]>arr[k+1]) {
int tmp=arr[k+1];
arr[k+1]=arr[k];
arr[k]=tmp;
}
printArray(arr); //그냥 sysout하면 오류나더라
System.out.println();
}
}
printArray(arr);
}
public static void printArray(int arr[]) {
for(int i=0; i<arr.length; i+=1) {
System.out.print(arr[i]+ " ");
}
}
}