다형성이란 여러 가지 형태를 가질 수 있는 능력을 의미하는 다형성은 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. 이를 좀 더 구체적으로 말하자면, 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. 지금까지 우리는 인스턴스를 생성하고 다루기 위해서 해당하는 타입의 참조변수만 사용했다. 예를들어 CaptionTv인스턴스를 사용하기 위해 CaptionTv타입의 참조변수를 사용한다. 이처럼 일치 시키는게 일반적이지만 Tv와 CaptionTv클래스가 서로 상속관계에 있을 경우, Tv t = new CaptionTv(); 처럼 사용하는 것도 가능하다. 그러면 이제 인스턴스를 같은 타입의 참조변수로 참조하는 것..
상속의 정의와 장점 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 용이 조상클래스 - 부모클래스, 상위클래스, 기반클래스 자손클래스 - 자식클래스, 하위클래스, 파생된클래스 상속 시 주의할점 1.자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. 2.생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. 위 그림처럼 Point3D는 x,y,z를 각각 만들어서 사용이 가능하지만 Point라는 x,y가 있는 클래스를 상속받아서 z만 추가한 형태로 사용이 가능하다. 그리고 자손 클래스의 인스턴스를 만들면 조상 클래스의 인스..
클래스와 객체 클래스란 '객체를 정의해 놓은 것' 또는 '객체의 설계도'라고 정의 할 수 있다. 클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된 대로 생성된다. 클래스의 정의 - 객체를 정의해 놓은 것 클래스의 용도 - 객체를 생성하는데 사용 객체의 정의 - 실제로 존재하는 것. 사물 또는 개념 객체의 용도 - 객체가 가지고 있는 기능과 속성에 따라 다름 유형의 객체 - 책상, 의자, 자동차 등 사물 무형의 객체 - 수학공식, 프로그램 에러와 같은 논리나 개념 실생활 예를 들어보면 TV설계도(클래스)는 TV라는 제품(객체)을 정의한 것이며, TV(객체)를 만드는데 사용된다. 또한 클래스는 객체를 생성하는데 사용될 뿐 객체 그 자체는 아니다. 클래스를 정의하고 클래스를 통해 객체를 생성하는 이..
자바의 동작과정 Hello.java -> javac.exe(자바 컴파일러) -> Hello.class 생성 -> java.exe(자바 인터프리터) -> “Hello world” 출력 컴파일러란? 원시 언어에서 목적 언어로 바꾸는 작업으로 A라는 언어에서 B라는 언어로 통역해주는 작업이다. 프로그래밍에서는 주로 고급언어를 기계어로 바꿔주는 것을 말한다. 근데 C나 C++의 경우 컴파일러는 CPU나 운영체제마다 가지고 있는 기계어가 조금씩 다르기 때문에 CPU나 운영체제마다 별도의 컴파일러가 필요하다. 같은 고급언어로 작성한 코드라도 다른 기계어 코드를 생성해야하는 것이다. 하지만 자바에선 컴파일러가 기계어로 바꾸는 것이 아니라 '바이트 코드로'라는 것으로 변환 시킨다. 자바의 가장 큰 장점은 JVM이다. ..
코딩을 열심히 하고 있었는데 갑자기 잘 쓰던 자동완성인 controll+space가 고장이 났다.. 저 키를 여러번 누르면 나오기야 하는데 원래는 한방에 딱 나와서 바로바로 넘어가서 편했는데 갑자기 여러번 눌러야만 나오게 바뀐것이다. 구글링으로 검색을 해보니 설정이 살짝 바뀐거같아 간단하게 참고 자료용으로 남겨두려고 한다. 환경 설정에 들어가서 옆에는 들어가는 경로이고 오른쪽 부분에 있는게 체크되어있나 확인을 꼭 하고 특히 up/down 버튼으로 java proposals를 맨위로!!
프로세스란? 실행중인 하나의 프로그램을 말한다. 하나의 프로그램이라도 실행시마다 개별 프로세스가 생성이 된다. 하나의 프로세스는 하나 이상의스레드와 할당받은 자원(메모리 등)이 존재한다. 쓰레드란? 프로세스 내에서 실제 작업을 수행하는 작업 단위이다. 모든 프로세스는 하나 이상의 스레드를 가지며 각각 독립적인 작업 단위를 가진다. 멀티 프로세스 vs 멀티 스레드독립적으로 프로그램을 실행하는 것을 멀티 프로세스라고 하고, 한 개의 프로그램을 실행하고 내부적으로 여러가지 작업을 처리 하는 것을멀티 스레드라고 한다. 스레드는 싱글 스레드와 멀티 스레드가 있는데 싱글 스레드는 하나의 작업이 끝나면 다른 스레드가 작업을 시작을 하는것이고 멀티 쓰레드는서로 틈만 나면 뺏어서 돌아가기 때문에 작업1,작업2가 서로 정..