이차원 배열 (Two Dimensional Array)
Memory
생성자 함수
•
생성자 함수는 제일 위에
•
parameter의 수가 다른 생성자 함수에 기본 생성자 함수 사용 가능
Practice
Class TV
class TV{
String brand;
int year;
int inch;
public TV(String brand, int year, int inch){
this.brand = brand;
this.year = year;
this.inch = inch;
}
public static void show(){
System.out.println(brand + "에서 만든 " + year + "년 " + inch + "인치");
}
}
public TvTest{
public static void main(String[] args){
TV myTV = new("LG", 2017, 32);
myTV.show();
}
}
Java
복사
→ LG에서 만든 2017년 32인치
Compile and Execute in Terminal (직접 컴파일 하는법)
In the terminal
javac fileName.java
Java
복사
compiles java file
java fileName
Java
복사
Executes file
접근제한자
public > protected > default > private
private | 클래스 내부 |
default | 클래스내부 & 동일 패키지 |
protected | 클래스 내부, 동일 패키지, 상속 받은 클래스 |
public | 전부 |
Default Class
동일 패키지로 묶인 클래스 내에서만 인스턴스 생성 가능
class Person{
int b; <- default
public int c;
}
Java
복사
정보 은닉
접근자와 설정자 메소드만을 통하여 필드에 접근함
•
접근자에서 매개 변수를 통하여 잘못된 값이 넘오는 경우를 차단
패키지
•
비슷한 성격의 자바 클래스를 모아 놓은 디렉토리
•
2 종류
1.
내장 패키지 (자바에서 기본적으로 제공)
2.
사용자 정의 패키지 (custom)
import packageName;
Java
복사
패키지 이름
•
모두 소문자
•
인터넷 도메인 이름의 역순 (eg. edu.lion.prj)
•
끝에 클래스를 정의한 주체/팀 이름
자바 가상 기계가 클래스를 찾는 순서
1.
현재 directory 부터
2.
환경 변수인 classpath에 설정된 directory
classpath변수 설정
C:\> set CLASSPATH=C:\classes;C:\lib;.
Java
복사
3.
가상 머신의 —classpath 옵션
상속
public class SportsCar extends Car
Java
복사
부모 클래스의 필드와 메소드를 사용가능
예시
class Car{
int speed;
public void setSpeed(int speed){
this.speed = speed
}
}
public class ElectricCar extends Car {
int battery;
public void charge(int amount) {
battery += amount;
}
}
Java
복사
public class ElectricCarTest{
public static void main(String[] args){
ElectricCar obj = new EleecricCar();
obj.speed = 10; <- 부모의 field 사용
obj.setSpeed(60); <- 부모의 method 사용
obj.charge(10);
}
}
Java
복사
과제
2차원 배열
import java.util.*;
public class Practice_Sep {
public static void main(String[] args) {
final int X = 5;
final int Y = 5;
Scanner sc = new Scanner(System.in);
while (true) {
String[][] square = new String[X][Y];
System.out.print("행: ");
int column = sc.nextInt();
if (column < 0 || column >= 5) {
break;
}
System.out.print("열: ");
int row = sc.nextInt();
if (row < 0 || row >= 5) {
break;
}
for (int i = 0; i <= X; i++) {
for (int j = 0; j <= Y; j++) {
if (i == 0 && j == 0) {
System.out.print(" ");
} else if (i == 0) { // i == column
System.out.print(j - 1 + " "); // if column is zero, print a number
} else if (j == 0) { // j == row
System.out.print(i + " ");
} else if (i == column + 1 && j == row + 1) {
System.out.print("X");
} else {
System.out.print(" ");
}
}
System.out.println();
}
System.out.println();
}
}
}
Java
복사
Rectangle Class
다음 멤버를 가지고 직사각형을 표현하는 Rectangle 클래스를 작성하라.