분류 전체보기67 1. 자바 컴파일 과정 예를 들어, C/C++로 작성된 프로그램의 경우 컴파일 환경과 실행 환경이 맞지 않은 경우에는 실행되지 않는 문제가 있었다. 만약 Linux환경에서 컴파일을 해서 나온 실행파일을 윈도우에서 실행 시키면 돌아가지 않는 것이다. - os마다 다른 system call, libraries가 존재하기 때문이다. - cpu제조사마다 각각의 ISA(Instruction Set Architecture)가 존재하기 때문이다. 위와 같은 문제를 해결하기 위해 자바는 OS에 독립적인 특징을 가지게 된다. 바로 JVM(Java Virtual Machine)덕분에 가능하게 되는데, 자바의 컴파일 과정은 아래와 같다. 위 그림을 설명하자면, 우리가 작성한 소스코드(.java)는 컴파일 시, java compiler에 의해 자바.. 2022. 11. 23. 22. 인터페이스 인터페이스 추상메서의 집합이라는 것이 핵심이자 본질이다. 구현된 것이 없는 선언부만 존재한다. 이름이 인터페이스인만큼 모든 멤버가 public이다. 추상 클래스와의 차이? 추상 클래스는 단지 "일반 클래스가 추상 메서드를 멤버로 가지고 있으면 추상 클래스"이다. (생성자, 멤버변수 등 다양하게 가질 수 있음) 인터페이스는 "추상메서드의 집합"이다. 인터페이스 선언 interface PlayingCard{ // 상수 public static final int SPADE = 4; final int DIAMOND = 3; static int HEART = 2; int CLOVER = 1; // 추상 메서드 public abstract String getCardNumber(); String getCardKind.. 2022. 11. 14. 21. 추상 클래스, 추상 메서드 추상 메서드 추상 메서드는 구현부는 없고, 선언만 해놓은 메서드를 말한다. 함수를 선언하고, abstract라는 키워드를 적어줌으로써 구현부({...})는 생략할 수 있다. 추상 클래스(abstract class) 추상 메서드를 가지고 있는 class를 추상 클래스라고 한다. 클래스를 정의하고, abstract라는 키워드를 적어준다. 추상 클래스는 상속을 통해서, 자식 클래스에서 추상 메서드를 구현해줘야 인스턴스 생성이 가능하다. // 추상 클래스 abstract class Player { // 추상 메서드 abstract void play(int pos); abstract void stop(); } // 추상 클래스는 상속을 통해서 완성해야 객체 생성이 가능하다. class AudioPlyaer ext.. 2022. 11. 11. 20. 다형성의 장점 다형성의 장점 다형성이라고 하면 아래 3가지가 있었다. 조상 타입의 참조변수가 자손 타입을 참조하는 것. 참조변수의 형변환(사용 가능한 멤버의 갯수를 조절) instanceof를 통한 형변환 가능여부 체크 이러한 다형성의 장점은 크게 두 가지가 존재한다. 다형적 매개변수 하나의 배열로 여러 종류의 객체 다루기 1. 다형적 매개변수 class Product { int price; int point; } class Tv extends Product {} class Computer extends Product {} class Buyer { int money = 1000; int point = 0; void buy(Tv t){ money -= t.price; point += t.point; } void buy(.. 2022. 11. 10. 이전 1 ··· 3 4 5 6 7 8 9 ··· 17 다음