MapleStory Cookie With Halo

☕ JAVA 114

[JAVA]추상 클래스 abstract class

미완성 설계도. 미완성 method(=추상 method)를 갖고 있는 class. class명 앞에 abstract가 붙는다(class 만들 때 abstract class로 생성). 추상method 앞에도 abstract가 붙는다. 구현부 { } 가 없다. 구현부가 없어 미완성이자 추상이라고 하는 것. abstract class는 instance 생성불가 상속extebds를 통해 추상 method를 완성해야 상속된 class로 instance 생성가능 이 때는 추상이 아니기 때문에 abstract가 붙지 않는다. 추상 method가 상속되면서 override된다. 구현부{ }는 AudioPlayer에서 만들면 됨. Player가 상속된 AudioPlayer를 다른 class에서 instance로 만들어 ..

[JAVA]다형성의 장점2:여러 종류의 객체를 배열로 다루기

조상type의 배열에 자손들의 객체를 담을 수 있다 public class ManyKindOfObjectArray { public static void main(String[] args) { Buyer2 b = new Buyer2(); b.buy(new Tv2()); b.buy(new Computer2()); b.buy(new Audio2()); b.summary(); System.out.println("현재 남은 돈은 " + b.money + "만원입니다."); System.out.println("현재 보너스점수는 " + b.point + "점입니다."); } } class Product2 { int price; int point; Product2(int price) { this.price = pric..

[JAVA]다형성의 장점1:매개변수의 다형성

참조형 매개변수는 method 호출 시, 자신과 같은 type 또는 자손type의 instance를 넘겨줄 수 있다. 걍 아래 예제 보시는 게 이해가 빠름 이거 보고 정리하는 거라고 전에 적긴 했는데 https://youtu.be/U-VGYYH-obM?si=1EFn4V2pSL45XxRi 간단한 코드지만 정말 깔끔하고 좋네요^^ public class ParameterPolymorphism { public static void main(String[] args) { Buyer b = new Buyer(); b.buy(new Tv()); b.buy(new Computer()); // buy(Product p) System.out.println("현재 남은 돈은 " + b.money + "만원입니다."); S..

[JAVA]instanceof 연산자:형변환 전 확인용도

참조변수의 형변환 가능여부 확인에 사용 static void doWork(Car4 c) { // FireEngine2은 Ambulance2과 형변환이 안되므로 확인 // c가 FireEngine2일 경우 실행하는 if문 if (c instanceof FireEngine2) { // 형변환이 가능한 지 확인 FireEngine2 fe = (FireEngine2) c; fe.water(); } } 따라서 형변환 전에 반드시 instanceof로 확인필요 System.out.println(fe instanceof Object); // true System.out.println(fe instanceof Car4); // true System.out.println(fe instanceof FireEngine2);..

[JAVA]참조변수의 형변환

사용할 수 있는 멤버의 갯수를 조절하는 것 조상, 자손 관계의 참조변수는 서로 형변환 가능 실제 instance가 무엇인 지가 중요 참조type 변수명 = new insatnce(); 이런 형태인데.. Car3 car = null; FireEngine f3 = (FireEngine) car; // 조상 -> 자손으로 형변환 Car3 car2 = f3; // 자손 -> 조상으로 형변환 car2.drive(); // NullPointerException 실제 값인 instance가 null인 걸 가지고 아무리 형변환해봤자 호출 시 error가 생긴다. Car3 car3 = new Car3(); FireEngine fe = (FireEngine) car3; // java.lang.ClassCastExcepti..

[JAVA]다형성 polymorphism

조상 type 참조 변수로 자손 type 객체를 다루는 것 또는 여러 가지 형태를 가질 수 있는 능력 class TvBotton { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDow() { --channel; } } class SmartTv extends TvBotton { String text; // caption void caption() { } } 이러한 코드가 있을 때 조상 type으로 자손 instance(new)를 생성가능 자손 type으로 조상 instance 생성 불가

[JAVA]접근 제어자/제한자 access modifier

접근제어자/접근제한자modifier  private현재 class 내 에서만 접근 가능.(default)현재 package 내에서만 접근 가능.접근 제어자를 안 붙였을 때 자동으로 default가 됨.(특이점이 있는데 밑에 설명 해두겠습니다)ptotected같은 package 내.그리고 (다른 package여도) 자손 class 에서 접근 가능.public제한 X.쓰이는 곳 전역변수 맨 앞.메소드 선언 맨 앞.   메소드 안 지역 변수에서는 사용 못 합니다.  public class는 해당 파일명과 일치하는 1개만 존재   class에는public과 (defulat)만   default 약간 혼돈 스러울 수 있지만지금까지 위에서 설명한 default는 범위를 얘기합니다.접근제어자를 적지 않으면 defau..

[JAVA]예약어 static, final, abstract

static: class의, 공통적인class StaticTest {    static int width = 200;         // class 변수(static 변수)        static {                        // class 초기화 block        // static변수의 복잡한 초기화 수행    }    static int max(int a, int b) {  // class method(static method)        return a > b ? a : b;    }}CVClass Vairable모든 instance에 공통적으로 사용되는 class변수가 된다.class 변수는 instance를 생성하지 않고도 사용 가능하다.memory에 load될 때(프로..

[JAVA]import와 import static

class를 사용할 때package이름을 생략할 수 있다  ※ import는 compiler에게 class가 속한 package를 알려준다.  import문 선언import 패키지명.클래스명;또느import 패키지명.*;*로 써도 compile 시에 처리되므로 프로그램 성능에 영향 없다.java.util.Date 에서 util은 package이므로import java.*와 같이는 쓸 수 없다.같은 package에 속한 class만 *로 불러 올수 있단 뜻.  작성순서package 선언import문class 선언  import static문: static 멤버를 사용할 때 class 이름을 생략할 수 있게 해준다.원래는 Math.random(); 이렇게 써야하는데 위에import static java.la..

[JAVA]package & class path. cmd로 java file실행과 환경변수 설정.

패키지package 서로 관련된 class의 묶음.class는 *.class, package는 folder. 하위 package는 하위 foler..(package는 folder라느 말)class의 실제 이름(full name)은 package를 포함.(java.lang.String).rt.jar(runtime)는 class들을 압축한 파일(JDK설치경로 \jre\lib에 위치)..Jar9부터 rt.jar파일은 module로 잘게 쪼게져서 없다. * jar.exe는 zip과 똑같아서 zip파일 압축을 푸는 프로그램으로 풀 수 있다.  package 선언 package study001;public class Package { public static void main(String[] args) { ..

반응형