자바의 정석 8

매개변수의 다형성

(다형성의 장점 : 1. 다형적 매개변수 2.하나의 배열로 여러종류 객체 다루기 ) -참조형 매개변수는 메서드 호출시, 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있다. 다형성 1. Tv t = new SmartTv(); 조상 = 자손 2. 참조변수의 형변환 = 사용가능한 멤버갯수조절 3. instanceof 연산자 (형변환 가능여부확인) class Product { int price;// 제품가격 int bonusPoint;// 보너스점수 } class Ty extends Product {} class Computer extends Product {} class Audio extends Porduct {} class Buyer { // 물건사는 사람 int money = 1000;// 소유..

자바의 정석 2022.08.22

상속

▶객체 지향 프로그래밍에서 부모클래스의 멤버를 자식클래스에게 물려줄 수 있다. 부모클래스 - 상위클래스 자식클래스 - 하위클래스 or 파생클래스 상속은 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 중복되는 코드를 줄여준다. 상속을 이용하면 부모 클래스의 수정으로 모든 자식클래스들도 수정되는 효과를 가져오기 때문에 유지 보수 시간을 최소화할 수 있다. 클래스 상속 ▶ 자식클래스가 부모클래스를 선택하여 상속받을 수 있다. ▶ 상속방법 class 자식클래스 extends 부모클래스 { //필드 //생성자 //메소드 } 1. 자바는 다중 상속을 허용하지 않아 여러개의 부모클래스를 상속할 수 없다. (단 하나의 부모클래스만 사용할 수 있다.) 2. 부모클래스에 private 접근 제한을 갖는..

자바의 정석 2022.05.23

인스턴스 멤버와 정적 멤버

▶ 객체마다 필드값이 달라야 한다면 해당필드는 객체마다 가지고 있는것이 맞다. 하지만 객체마다 사용하는 필드값이 같은 경우 객체마다 가지고 있게되면 메모리 낭비이며, 필드 값을 같게 맞추는 추가적인 작업이 필요할 수도 있다. 그래서 자바에서는 필드를 클래스 한 곳 에 위치시키고 객체들이 공유할 수 있도록하는 정적멤버와 필드를 객체마다 가지고 있는 인스턴스 멤버를 구분해서 선언할 수 있도록 하고 있다. ①인스턴스멤버와 this 객체를 생성한 후 사용 할 수 있는 필드와 메소드. (객체에 소속된 멤버이기 때문에 객체없이는 사용 할 수 없다.) 인스턴스 멤버 선언 Car객체 (myCar) Car객체 (yourCar) gas : 10 gas :20 위 코드를 실행하면 인스턴스 필드(gas)는 객체 마다 따로 저..

자바의 정석 2022.04.15

메소드 Method

메소드는 객체의 동작에 해당하는 중괄호 { } 블록을 말하며, 메소드를 호출하면 블록안의 모든 코드들이 일괄적으로 실행된다. 메소드 선언방법 선언부와 실행블록으로 구성된다. 메소드 선언부를 메소드 시그니처(signature) 라고한다. 메소드 선언부는 리턴타입, 메소드 이름, 매개 변수 선언 부분을 말한다. 리턴타입 메소드이름 (매개변수선언, .....) { 실행할 코드를 작성하는 곳 //메소드 실행 블록 } 리턴타입 메소드가 리턴하는 결과의 타입을 표시 메소드를 실행한 후 나오는 결과 값의 타입을 말한다. 리턴갑이 있으면 리턴타입이 선언부에 명시되어야 한다. 리턴값이 없는 메소드는 리턴타입에 void로 기술하며 , 리턴값이 있는 메소드는 리턴값의 타입을 기술한다. 결과 값이 int값이면 int , St..

자바의 정석 2022.04.12

생성자 Constructor

※ 생성자는 메소드와 비슷한 모양을 가지고 있으나, 리턴타입이 없고 클래스 이름과 동일하다. ▶ 생성자 선언 방법 클래스 ( 매개변수선언, -----) { //객체의 초기화코드} ▶ 기본생성자 모든 클래스에는 생성자가 반드시 존재하며, 생성자를 하나이상 가질 수 있다. 생성자를 선언하지 않아도 컴파일러가 기본생성자를 바이트코드에 자동으로 추가하기때문에 new 연산자로 생성자를 호출해서 객체를 생산할 수 있다. public Class Members{ public Members(){ }

자바의 정석 2022.04.12

필드 Field

CV(class variable 클래스 변수(static 변수, 공유변수) 클래스 영역에 선언(클래스가 메모리에 올라갈 때 생성 = 객체를 만들 때) 객체없이도 사용가능하며 공유 변수(shared varible) 라고도 한다. 공통으로 가져야할 속성에 사용된다. 해당 클래스의 모든 인스턴스가 공유해야 하는 값을 유지하기 위해 사용된다. static 키워드를 가지는 변수 ex) 카드의 폭과 높이 CV는 메소드호출할 때 클래스이름을 풀로 다 적어준다. ex) Card c = new Card() c.width = 200;

자바의 정석 2022.04.11

클래스 Class

현실에서의 객체는 설계도를 바탕으로 만들어진다. 자바에서 클래스는 설계도 역할을 한다. 클래스가 있어야 객체를 만들 수 있다. ex) 자동차가 객체라면 클래스는 자동차의 설계도이다. 클래스로부터 만들어진 객체를 인스턴스라고 하며, 이 과정을 인스턴스화라고 한다. 하나의 클래스로부터 여러 개의 인스턴스를 만들 수 있다. 4. 클래스 == 데이터 + 함수 변수 : 하나의 데이터를 저장할 수 있는 공간 배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간 구조체 : 서로 관련된 여러데이터(종류 관계X)를 하나로 저장할 수 있는 공간) -서로관련있는 것들끼리 클래스 : 데이터와 함수의 결합 (구조체 +함수(메소드) ) - 서로 관련있는 것들끼리 ↓ 클래스의 작성규칙 더보기 하나이상의 문자로 이루어져야..

자바의 정석 2022.04.11

객체 지향 프로그래밍 기본 개념

1. 객체 지향 프로그래밍 OOP : Object-Oriented Programming 1) 객체를 만들고 이를 조합하여 완성된 프로그램을 만드는 기법. 2) 객체지향 언어 = 프로그래밍 언어 + 객체지향개념(규칙) ↓부가설명 더보기 80년 초 기존의 프로그래밍언어로 빠른 변화를 쫓아가지 못해 소프트웨어의 위기가 옴. 해결책으로 객체지향 언어를 도입(절차적 -->객체지향) 객체지향의 장점 - 코드의 재사용성이 높고 유지보수가 용이, 중복코드 제거 = 코드를 한번만들면 다른곳에서 쉽게 사용할 수 있고, 소프트웨어가 변경되어도 적은노력으로 대응가능하다. C언어에 객체지향개념을 추가한게 C++이다. 하지만 너무 어려워서 확산이 많이 되지 않았다. 1996년 JAVA가 C++에서 잘안쓰는 기능을 떼어내 쉽게만들..

자바의 정석 2022.04.10