CS/Java(8)
-
[Java/객체지향] 클래스의 관계 - 상속/포함관계/단일상속/Object클래스
클래스의 관계(1)상속기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용)두 클래스를 부모와 자식으로 관계를 맺어주는 것자손은 조상의 모든 멤버를 상속받는다.(생성자, 초기화블럭 제외)자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다.자손의 변경은 조상에 영향을 미치치 않는다.2차원 좌표의 한 점(x,y)class Point{ int x; int y;} 3차원 좌표의 한 점(x, y, z)//(1)Point와 관계없는class Point3D{ int x; int y; int z;}//(2)Point와 상속관계class Point3D extends Point{ int z;} (2)포함 관계포함이란?클래스의 멤버로 참조변수를 선언하는 것작은 단위의 클래스를 만들고, 이 둘을 조합해서 클래스..
2024.08.21 -
[Java/객체지향] 생성자, 생성자의 조건, 참조변수 this
생성자인스턴스가 생성될 때 마다 호출되는 ‘인스턴스 초기화 메서드’ = 객체 초기화 = iv(묶음) 초기화인스턴스 생성 시 수행할 작업(iv 초기화 등)에 사용초기화란?생성자 왜 만들어? iv 초기화를 편리하게 하려고! 생성자의 조건생성자의 이름 = 클래스의 이름생성자는 리턴값이 없음 (void 안 붙임)모든 클래스는 생성자를 가져야한다.기본생성자매개변수가 없는 생성자생성자가 하나도 없을 때만, 컴파일러가 자동 추가클래스이름( ) { }매개변수가 있는 생성자class Car{ String ccolor; String gearType; int door; Car() {} //기본 생성자 -> 매개변수가 없는 생성자 Car(String c, String g, int d){//매개변수가 있는 생성자 color ..
2024.08.20 -
[Java/객체지향] 오버로딩과 오버라이딩
오버로딩한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것매개변수는 다르지만, 같은 의미의 기능 수행ex) 메서드 대표적 이름은 ‘add, println, round’ → 어떤 작업을 수행하는 것이 메서드라 대부분 동사 → 이름이 같다 = 하는 동작이 같다.오버로딩 성립 조건 3가지메서드 이름이 같아야 한다.매개변수의 개수 또는 타입이 달라야 한다.반환 타입은 관계없다.class Ex6_10 { public static void main(String args[]){ MyMath3 mm = new MyMath3();//인스턴스 생성 int result = mm.add(3, 3); System.out.println("mm.add(3, 3) 결과:" + result);..
2024.08.19 -
[Java/객체지향] static 메서드와 인스턴스메서드
인스턴스 메서드 - iv 사용O객체(인스턴스) 생성 후, ‘참조변수. 메서드이름( )’으로 호출인스턴스 멤버(iv,im)와 관련된 작업을 하는 메서드메서드 내에서 인스턴스 변수(iv) 사용 가능 → iv 사용하니, 매개변수 필요Xstatic 메서드 - iv 사용X객체 생성 필요X, ‘클래스이름.메서드이름( )’으로 호출 → ex) Math.round( ), Math.random( )인스턴스 멤버와 관련없는 작업을 하는 메서드메서드 내에서 인스턴스변수 사용X → 작업에 필요한 값 등을 매개변수로 받으니 필요X언제 static 사용?속성(멤버변수) 중 공통속성(cv)인스턴스 멤버(iv, im)사용X 메서드→ 인스턴스 메서드와 클래스 메서드는 명령문 집합이라는 같은 Base→ But, “iv사용”이라는 차이만..
2024.08.18 -
[Java/객체지향] 매개변수
기본형 매개변수 → 읽기onlyclass Data{int x;}class Ex6_6 { public static void main(String[] args){ Data d = new Data(); d.x = 10; System.out.println("main() : x = " + d.x); change(d.x); System.out.println("After change(d.x)"); System.out.println("main() : x = " + d.x); } static void change(int x){ x=1000; System.out.println("chan..
2024.08.18 -
[Java/객체지향] 메서드
메서드1. 문장들을 묶어놓은 것 = 문장들을 작업단위로 묶어서 이름 붙인 것 → [장점] 코드 중복 제거 /관리 용이/재사용 가능public static void main(String args[]){...중간 생략...for(int i = 0;i//메서드//메서드 이름 : printArr(){}static void printArr(int[] numArr){ for(int i=0;i 코드 중복 삭제 2. 어떤 값을 입력하면, 이 값으로 작업을 수행해서 결과를 반환 cf) 메서드 vs 함수메서드와 함수는 거의 같은 개념 → 메서드는 객체지향에서 함수를 지칭하는 단어[차이] 메서드: 반드시 클래스 안에 존재 vs 함수: 클래스에 독립적 메서드의 작성반복적으로 수행되는 여러 문장을 메서드로 작성하나의 메서드..
2024.08.17