본문 바로가기

JAVA31

day09) 추상 메서드, 추상 클래스 추상메서드 일반 메서드에서 메서드 시그니쳐 부분만 정의하고 구체적인 내용은 비워 놓은 메서드=> 바디를 구현하면 오류 추상메서드가 있는 클래스를 상속받는 자식클래스는 반드시 부모 클래스의 추상메서드를 구현해야한다. => 자식이 메서드를 오버라이딩 하게 강제하기 위해 존재한다. 구현방법: abstract 리턴타입 메서드명( ); 추상클래스 추상메서드를 멤버로 갖는 클래스 일반메서드를 멤버로 가질 수 있다. 추상메서드가 하나라도 포함되어 있다면 추상클래스가 되어야 한다. 객체를 생성 할 수 없다. =>구현은 자식 클래스가 하도록 메서드의 기능을 비워놓고 싶을 때 사용! 구현방법: abstract class 클래스명{ 추상메서드 } abstract class Shape{//추상클래스 String name; S.. 2021. 12. 31.
day08)상속 상속이란? : 부모클래스의 기능을 자식클래스가 물려받는 것, 부모클래스에서 작성한 기능의 재사용을 위해 사용한다. class Point {//부모클래스 int x; int y; public Point(int x, int y) {//인자, input, 파라미터 => 외부에서 넘어온 값 this.x=x;//외부에서(사용자가) 넘어온 값을 멤버변수로 초기화! this.y=y; } void info() { System.out.println("점 ("+this.x+","+y+")"); } } class ColorPoint extends Point{//자식클래스 String color; ColorPoint(int x, int y) { super(x, y);//나는 this, 부모는 super //자식클래스의 모든 .. 2021. 12. 31.
day08) getter, setter 접근제어자 멤버변수로 직접접근하는것은 방지 -> private 본인을 상속받은 클래스까지만 접근가능 ->protected *멤버변수에 private 사용하더라도, 접근하여 이용하는 경우가 있으므로 getter, setter라는 메서드를 사용한다. getter, setter메서드 앞에는 public이 붙는데 이는 다른 패키지에서도 접근이 가능하게 하기 위해서이다. 만약, public을 붙이지 않고 디폴트로 붙인다면, 동일 패키지에서만 접근이 가능하다 class Card{ static int money=10000;; String name; private String pw;//비밀번호 접근을 막기 위해 private public void setPw(String pw){//setter this.pw= pw; }.. 2021. 12. 31.
day07)static(클래스) 변수, 객체 배열 static(클래스, 정적)변수 1. 멤버변수, 인스턴스 변수: 각 객체끼리 그 값을 공유하지 않는다. 2. static변수, 정적변수, 클래스변수: 클래스가 변수의 주인으로, 각객체끼리 그 값을 공유한다. class A{ int a; //멤버변수 인스턴스 변수 static int b;//정적변수, 클래스 변수 void show() { System.out.println(a+" "+b); } } public class Test03 { public static void main(String[] args) { A a1=new A(); A a2 = new A(); a1.a=100; a1.b=200; a2.a=300; a2.b=400; a1.show(); a2.show(); /*결과: 100 400 300 400.. 2021. 12. 30.