///////
Search
🐘

김도현

멋쟁이사자 백엔드 2기
목차

2차원 배열

2차원 배열의 접근
public static void main(String[] args) { int[][] arr = new int[3][4]; int num = 1; // 배열에 값을 저장 for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { arr[i][j] = num; num++; } } // 배열에 저장된 값을 출력 for(int i = 0; i < 3; i++) { for(int j = 0; j < 4; j++) { System.out.print(arr[i][j] + "\t"); } System.out.println(); } }
Java
복사
이차원 배열 응용
바둑, 오목, 게임(퍼즐) 등에 응용 할 수 있다.
실습 문제

생성자에 대한 이해

생성자 : = 객체가 객체화 될 때 호출되는 특수 함수 = 새 키워드를 사용할 때 자바 생성자 목적은 새로 생성된 객체를 쓰기 전에 초기화하는 것 = 생성자는 해당 클래스의 인스턴스(객체)를 초기화한다. = 일반적으로 생성자는 초기화가 필요한 객체의 필드를 초기화한다.

생성자 예제

class Pizza { int size; String type; public Pizza() { size = 12; type = "슈퍼슈프림 "; } public Pizza(int s, String t) { size = s; type = t; } public class PizzaTest { public static void main(String[] args) { Pizza obj1 = new Pizza(); System.out.println("(" + obj1.type + " , " + obj1.size + ",)"); Pizza obj2 = new Pizza(24, "포테이토"); System.out.println("(" + obj2.type + " , " + obj2.size + ",)"); } } }
Java
복사
생성자는 클래스 이름과 같은 이름의 함수다.
생성자는 void, int 등의 반환형이 선언돼 있지 않아서 리턴값이 없다.
생성자는 중복 정의될 수 있다.
생성자는 객체를 초기화하는 작업만 하는 함수다.
생성자를 정의하지 않으면 컴파일러가 알아서 디폴트 생성자를 만들어 사용한다.

클레스와 객체 문제

연습 문제 1)

문제 설명

1) 자바 클래스를 작성하는 연습을 해보자. 다음 main() 메소드를 실행하였을 때 예시와 같이 출력되도록 TV 클래스를 작성하라.

public static void main(String[] args) { TV myTV = new TV("LG", 2017, 32); //LG에서 만든 2017년 32인치 myTV.show(); } LG에서 만든 2017년형 32인치 TV
Plain Text
복사
코드 보기

연습 문제 2)

문제 설명

2) Grade 클래스를 작성해보자. 3 과목의 점수를 입력받아 Grade 객체를 생성하고 성적 평균을 출력하는 main()과 실행 예시는 다음과 같다.

public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.print("수학, 과학, 영어 순으로 3개의 정수 입력 >> "); int math = sc.nextInt(); int science = sc.nextInt(); int english = sc.nextInt(); Grade me = new Grade(math, science, english); System.out.println("평균은 "+me.average()); //average()는 평균을 계산하여 리턴 sc.close(); }
Plain Text
복사
코드 보기

패키지(Package)

비슷한 성격의 자바 클래스들을 모아 놓은 자바 디렉토리
패키지를 사용하면 비슷한 성격의 클래스들끼리 묶을 수 있어 클래스의 분류가 용이
패키지 이름 짓기 ( com.lion.team )

패키지 응용

접근 제한자 (Access Modifier)

접근 제한자에 대한 이해

클래스 정의 대상: public, default
인스턴스 변수와 메소드 대상: public, protected, default, private

접근 제어

public : 어디서든 인스턴스 생성이 가능
private : 키워드를 활용해서 외부에서 클래스 내부의 정보에 접근하지 못하도록 하는 기능
default : 동일 패키지로 묶인 클래스 내에서만 인스턴스 생성을 허용

접근 제한자 정리표

정보 은닉

실무에서는 모든 변수 무조건 private 사용
하나의 java 파일에서 public은 한개만 가능 (관습적으로)
생성자 public 문제
class Circle { private double rad = 0; final double PI = 3.14; public Circle(double r) { setRad(r); } public void setRad(double r) { // Setter if (r < 0) { rad = 0; return; } rad = r; } public double getRad() {// Getter return rad; } public double getArea() {...} } public class Main { public static void main(String[] args) { Circle c = new Circle(1.5); System.out.println(c.getArea()); c.setRad(2.5); System.out.println(c.getArea()); c.setRad(-3.3); System.out.println(c.getArea()); c.rad = -4.5; // 컴파일 오류로 이어짐 System.out.println(c.getArea()); } }
Java
복사

상속