본문 바로가기

Java

[ JAVA ] 상속 - 중복코드 줄이기 클래스 상속 선언법 class 자식클래스 extends 부모클래스{ // 필드 // 생성자 // 메소드 } 부모생성자 호출 super() 자식클래스(매개변수선언, ...){ super(매개값, ...); } 메소드 재정의 자식클래스에서 부모 클래스의 메소드를 다시 정의하는 것으로 부모 메소드와 동일한 리턴 타입, 메소드 이름, 매개 변수 목록을 가져야 한다. 접근 제한을 더 강하게 재정의 할 수 없다. 새로운 예외를 throws 할 수 없다. 부모 메소드 호출 super.부모메소드(); 상속할 수 없는 final 클래스 클래스를 선언할 때 final 키워드를 class 앞에 붙이면 이 클래스는 최종적인 클래스이므로 상속할 수 없는 클래스가 된다. (부모 클래스가 될 수 없어 자식 클래스를 만들 수 없다... 더보기
[ JAVA ] 접근 제한자 - 어디까지 접근이 가능한가 접근 제한자 class를 사용하는 개발자가 해당 필드 또는 메소드에 어디까지 접근이 가능한가 1. public public String sName1; 2. protected protected String sName2; 3. default String sName3; 4. private private String sName4; private는 필드나 메서드를 만들면 class 내부에서만 사용이 가능하다. (캡슐화의 일환) protected, default는 같은 package 내부의 class에서만 접근이 가능하다. protected vs default protected는 상속에서 사용이 가능하고 default는 불가하다. public은 클래스 사용자가 맘대로 사용이 가능하다. 더보기
[ JAVA ] 2차원 배열 - 배열의 배열 2차원 배열 int [][] arr = new int[3][2]; 2차원 함수에서 x축, y축과 같이 x 축으로 3개 y 축으로 2개의 배열을 만드는 것이다. 즉 정수를 두개씩 담을 수 있는 3개의 배열을 만든 것이다. arr[0][0] = 12; arr[0][1] = 30; arr[1][0] = 27; arr[1][1] = 36; arr[2][0] = 11; arr[2][1] = 78; 1차원 배열 vs 2차원 배열 // 1 long[][] ln = new long[3][1]; ln[0][0] = 0; ln[1][0] = 0; ln[1][0] = 0; // 2 long[] ln2 = new long[3]; ln2[0] = 0; ln2[1] = 0; ln2[2] = 0; 단편적으로 같아 보일 수 있으나 .. 더보기
[ JAVA ] Call by Value vs Call by Reference 예제 1 - int형 (Call by Value) int a1 = 1; int a2 = 2; int a3 = 3; int a4 = 4; int a5 = 5; int a6 = 6; int b1 = a1; a1 = 13; System.out.println(b1); System.out.println(a1); 변수 6개를 만들어 값을 저장했고 stack이라는 공간을 차지하게 됨 변수 각각의 메모리 공간을 차지하기 때문에 할당 시 각각 할당됨 그래서 a1 은 13을 출력, b1 은 1을 출력 예제 2 - String형 (Call by Value) String str1 = "hong"; tring str2 = "kim"; String str3 = str1; str3 = "choi"; System.out.printl.. 더보기
[ JAVA ] SWITCH CASE - 조건문 - 조건이 명확할 때 예제 1 (switch case) - int형 int num = 7; String strOut = ""; switch(num) { case 1 : strOut = "1입니다."; break; case 2 : strOut = "2입니다."; break; case 3 : strOut = "3입니다."; break; default : strOut = "default"; } System.out.println(strOut); 조건이 끝날 때 마다 break; 해주지 않으면 정상 실행되지 않음 break 필수 default는 조건에 해당되지 않을 경우 예제 1 (switch case) - String형 String str = "철수"; switch(str) { case "철수" : str = "철수입니다."; br.. 더보기
[ JAVA ] 반복문 예제 1 (for) - 반복문으로 1부터 100까지 합 구하기 int b = 0; for(int a = 1; a 더보기
[ JAVA ] 기본 타입 JAVA는 다른언어와 비교적 제한적인 데이터 타입을 가지고 있다. 변수를 선언하면 선언된 변수에 따라 값의 허용범위가 다르고 선언한 후 타입 변경이 안되기 때문에 변수 선언 전 어떤 타입을 사용할지가 중요하다. 자바에서 제공되는 기본 타입은 저장되는 값에 따라 정수 타입, 실수 타입, 논리 타입 3가지로 분류되어 정수 타입 - byte, char, short, int, long 실수 타입 - float, double 논리 타입 - boolean 총 8가지 기본 타입을 가지고 있다. 정수타입 데이터 타입마다의 메모리 사용 크기와 저장되는 값의 범위가 정해져있기 때문에 외울 필요는 없겠지만 유의해서 사용해야되기 때문에 알고 있는 것이 좋다. 타입 메모리 사용크기 저장되는 값의 허용 범위 byte 1byte .. 더보기