본문 바로가기

Java

(130)
[Java] 상속 is-a관계 상속의 조건(상속을 위한 클래스간의 관계) - 모든 클래스들이 상속을 받을 수 있으나, 특정 관계의 클래스들만 상속을 하는 것이 좋습니다. - 특정 관계가 아닌 클래스들이 상속을 받게 되면 오히려 상속받지 않은 것만 못합니다. - 상속을 받을 조건(관계) is-a관계 하위클래스 is a 상위클래스의 관계로 하위클래스가 상위클래스의 한 종류가 되어야 합니다. 해석 : '하위클래스'는 일종의 '상위클래스'이다. is a 관계일 경우 상속을 받아도 무방합니다. . . 접근방법 - Computer와 Notebook과 Tablet이 서로 is-a관계인지 확인한다. 예제 class Computer { String owner; public Computer(String name){ owner= name; } publi..
[Java] static 상속 - private으로 선언된 상위 클래스의 멤버는 상속은 되지만 하위 클래스에서 접근을 할 수는 없으며, 접근하기 위해서는 메소드를 통해 접근해야 합니다. - 상속의 단계가 몇 단계이든 상관없이 상위 클래스의 멤버에 접근 할 수 있습니다. - 클래스멤버(static)도 상속이 되어 하위클래스에서도 공유할 수 있습니다. . . 예제 class Adder { static int val = 0; public void add(int n){ val += n; } } class AdderFriend extends Adder{ public void friendAdd(int n){ val += n; } public void showVal(){ System.out.println(val); } } class InheriS..
[Java] 상속 실습 상속에 대해 실습을 해보았다. WaterCar에서 showCurrentGauge() 메소드를 사용하기 위해 HybridCar와 Car를 상속 받았다. (단일 상속이기 때문에 WaterCar가 HybridCar를, HybridCar가 Car를 상속받는다.) . . 예제 class Car{ int gasolineGauge; public Car(int gasolineGauge){ this.gasolineGauge = gasolineGauge; } } class HybridCar extends Car{ int electricGauge; public HybridCar(int gasolineGauge, int electricGauge){ super(gasolineGauge); this.electricGauge = ..
[Java] 상속 기초 상속(inheritance) - 두 클래스간의 관계를 의미하며 상속을 주는 클래스(super, 상위 클래스)가 상속을 받는 클래스(sub, 하위 클래스)에 멤버들을 자유롭게 사용할 수 있게 해줍니다. - 하위 클래스에서 상위 클래스의 멤버를 사용할 대 인스턴스를 생성하지 않고 사용이 가능합니다. - 단, 자바에서의 상속에서는 단순히 코드의 재활용성에 초점을 두면 안됩니다. - 자바에서의 상속은 단일 상속(한 클래스에서만 상속받음)만을 지원합니다. - 상속의 목적은 삭속관계의 클래스들을 공통적인 규약으로 묶기 위해 상속을 합니다. - 자바의 모든 클래스는 상속 관게에 속해 있습니다. 모든 클래스는 자동으로 java.lang.Object 클래스를 상속받고 있습니다. - 문법 class 하위클래스명 exten..
[Java] for each 문 for-each문 - 배열이나 컬렉션 등에서 사용되는 반복문으로 jdk1.5에서 추가된 기능 - 문법 for (변수 선언 : 배열 or 컬렉션명){ 변수 사용 실행문; } // 변수 : 배열이나 컬렉션의 값을 저장할 변수나 객체 ex) 일반 for문 for (int i = 0; i < arr.length ; i++){ System.out.println(arr[i]); } ex) for-each문 사용 for (int e : arr){ System.out.println(e); } . . 예제 class ForeachEx { public static void main(String[] args) { int[] arrInt = new int[5]; // int형 데이터 5개를 저장할 수 있는 arrInt라는 배..
[Java] 2차원 배열 - 2차원 배열 선언 및 생성법 자바에서의 2차원 배열은 타 언어들과는 달리 여러 개의 1차원 배열의 조합으로 생성됩니다. 자료형[][] 배열명 = new 자료형[행개수][열개수]; // 가장 많이 사용 배열명 자료형[][] = new 자료형[행개수][열개수]; 자료형[] 배열명[] = new 자료형[행개수][열개수]; // 2, 3번째 방법은 사용 안함. - 2차원 배열의 초기화 : 각 행별로 다른 길이로 지정할 수 있습니다. 자료형[][] 배열명 = { {값1, 값2, 값3}, {값1, 값2}, {값1, 값2, 값3, 값4, 값5}, }; 또는 자료형[][] 배열명 = {{값1, ... , 값n}, {값1, ... , 값n}, {값1, ... , 값n}}; // 각 행마다 다른 길이로 값을 지정할 수..
[Java] 최댓값, 최솟값 구하기 Array와 for문을 이용하여 Scanner로 입력받은 정수의 최댓값과 최솟값을 구해보자. . . 접근 방법 - 배열에 입력된 정수 중 첫 번째 값은 최댓값(int max) 또는 최솟값(int min)으로 설정한다. - 그리고 배열에 있는 모든 숫자들을 조건에 맞게 검사하여 max보다 크면 그 값을 max에 저장한다. 최솟값도 마찬가지이다. import java.util.*; /* 배열을 매개변수로 하는 메소드를 두 개 정의 public static int getMaxValue(int[] arr){} public static int getMinValue(int[] arr){} 각 메소드에서는 전달받은 배열에서 최대값과 최소값을 구하여 리턴 배열은 Scanner를 이용하여 5개의 정수를 입력받아 최대값과..
[Java] 배열 Scanner이용 cmd 창에서 데이터를 입력받기 위해서 import java.util.*; 이용하여 Scanner 사용합니다 . . 예제 import java.util.*; // util패키지 내의 모든 클래스를 사용하겠다는 의미 class ArrayEx2 { public static void main(String[] args) { int[] arrInt = {2, 4, 6, 8}; for (int i = 0 ; i < arrInt.length ; i++) { System.out.print(arrInt[i] + " "); } System.out.println(); Scanner sc = new Scanner(System.in); int[] arrInt2 = new int[6]; for (int i = 0 ; i < ar..