자바 또또 반복(객체지향)_2

bitna's study note·2022년 10월 27일
0

자바

목록 보기
110/119

10월 28일

1.스택
밑이막힌 상자,위에 차곡차곡 쌓인다.

2.호출스택
메서드가 작업하는데 필요한 메모리가 제공되는 공간 입니다.
메서드를 호출하면 호출스택에 메모리가 할당, 종료되면 해제.

3.기본형 매개변수-8개의 타입, 변수의 값을 읽기만 가능하고 변경이 불가.
참조형 매개변수-변수의 값을 읽고 변경할수 있다.

*기본형 매개변수

package Java;

class Data{ int x; }

public class Exam6_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");
		System.out.println("main(): x="+d.x);
	}
	
	static void change(int x) { // 기본형 매개변수
		x=1000;
		System.out.println("change():x="+x);
	}
}

*참조형 매개변수

package Java;

class Data{ int x; }

public class Exam6_6 {
	
	public static void main(String[]args) {
		Data d= new Data();
		d.x=10;
		System.out.println("main(): x="+d.x);
		
		change(d);
		System.out.println("After change");
		System.out.println("main(): x="+d.x);
	}
	
	static void change(Data d) { // 참조형 매개변수
		d.x=1000;
		System.out.println("change(): x="+d.x);
	}
}

참조형 매개변수는 객체가 통으로 매개변수에 전달 되었음. 리모컨이 통으로 넘어간경우

4.반환타입이 참조형일 경우 객체의 주소 또는 객체를 반환한다.

5.인스턴스 메서드
(1)인스턴스 생성후, '참조변수.메서드이름()'으로 호출
(2)인스턴스 멤버와 관련된 작업을 하는 메서드
(3)메서드 내에서 인스턴스 변수 사용가능

6.static 메서드(클래스메서드)
(1)객체 생성없이 '클래스이름.메서드이름()'으로 호출 예)Math.random()
(2)인스턴스멤버와 관련이 없는 작업을 하는 메서드
(3)메서드 내에서 인스턴스 변수 사용불가

7.언제 static 메서드를 사용하는가?
(1)속성중에 공통속성에 static을 붙인다. 예)카드 속성
(2)인스턴스변수를 사용하지 않는 메서드에 static을 붙인다.

8.오버로딩
하나의 클래스안에 같은 이름의 메서드를 여러개 정의해 놓은거(메서드이름:메서드=1:N관계)
예)println()

9.오버로딩 성립조건
(1)메서드 이름이 같아야 함.
(2)매개변수의 개수 또는 타입이 달라야 함.
(3)반환타입이 달라도 오버로딩은 성립되지 않음.

10.생성자
인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드'
인스턴스 생성시 수행할 작업(iv 초기화 등등)에 사용

11.생성자 규칙
(1)이름이 클래스 이름과 같아야 한다.
(2)리턴값이 없다.(void를 안붙임. 왜?항상 반환값이 없기 때문에)
(3)모든 클래스는 1개이상의 생성자가 있어야 함.
(4)내가 만든생성자가 없을때 컴파일러가 기본생성자를 자동으로 만들어줌.

12.기본생성자
매개변수가 없는 생성자
원래는 내가 만들어야함.
단!!클래스에 생성자가 하나도 없을때만, 컴파일러가 자동 추가.
하나라도 있으면 컴파일러가 안만들어주니, 항상 생성자를 하나라도 만들면 꼭!!!기본생성자를 만들어 주자!!!

13.매개변수가 있는 생성자

package Java;

public class Ex6_11 {

	public static void main(String[] args) {
		
		//기본 생성자만 사용할때
		Car c= new Car();
		c.color="white";
		c.gearType="auto";
		c.door=4;
		
		//매개변수가 있는 생성자도 사용할때
		
		Car c1=new Car("white","auto",4); 
	}
	
}

class Car{
	String color;
	String gearType;
	int door;
	
	Car(){} //기본생성자
	Car(String c,String g,int d){//매개변수가 있는 생성자	
		color=c;
		gearType=g;
		door=d;
	} 	
}

14.생성자 this()
(1)같은 클래스안에 있는 생성자에서 다른 생성자를 호출할 때 사용
(2)다른 생성자를 호출시(즉,this()를 사용시) 첫 줄 에서만 사용가능

15.참조변수this
(1)인스턴스 자신을 가르키는 참조변수,
(2)인스턴스 메서드(생성자포함)에서 사용가능
(3)지역변수와 인스턴스변수를 구별할때 사용

16.변수의 초기화
(1)지역변수(lv)는 수동 초기화 해야함.(사용전 꼭!!!)
(2)멤버변수(iv)는 자동 초기화 된다.

profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

관련 채용 정보