///////
Search

2차원 배열, 접근 지정자, 패키지

작성 날짜
2022/09/22 07:46
Text
Text 1
작성자
김미지

이차원 배열 (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 클래스를 작성하라.