클래스 하위, 클래스선언

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a3eedd47-a22b-494d-820f-deaa07e01877/CE2AB82D-6015-4171-BD19-6741D46AF789.jpeg

클래스의 기본문법

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/14807d48-b0e5-4f25-af63-d1d4bc8f1ad6/EF4DB8E7-A3DD-4758-B325-D9301DB641B3.jpeg

  1. public : 본인클래스 + 같은패키지 + 자식클래스 + 다른 패키지
  2. protected : 본인클래스 + 같은패키지 + 자식클래스
  3. (default) : 본인클래스 + 같은패키지
  4. private : 본인클래스

객체생성문법, 객체 선언 및 메소드 사용 오류 예시

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e7762d51-19ac-4058-a036-885bcc5fa709/95592436-C28C-44E2-BC0B-D91038F93511.jpeg

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뒤에 클래스 명이라고 쓰여있는게 사실은 메소드명이었단 얘긴듯)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/db4bb21c-91cf-40ba-bf1c-b6b6397167af/051A0322-22D7-40B4-9B77-25753137A404.jpeg

//생성자를 설명하기 위한 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]+ " ");
		}
	}
}