언어/Java

[자바스터디] 생활코딩 75강-88강 정리

qkrgusqls 2023. 3. 21. 19:29

 

유효범위란?

이름이 충돌하지 않기 위해 만든 것

메소드 안에서 변수 선언

 

디렉터리 : 파일을 그룹핑해서 정리

 

static void a(){
    int i = 5;
}
 

a라는 메소드 안에 있기 때문에

밖의 범위에는 영향을 주지 않음

 

class C {
    int v = 10;
 
    void m() {
        int v = 20;
        System.out.println(v);
        System.out.println(this.v);
    }
}
 

출력

20

10

 

this를 통해 전역변수를 불러옴

 

초기화와 생성자

 

Calculator c1 = new Calculator();
c1.sum();       
c1.avg();
 

생성자

Calculator라는 class에 Calculator라는 메소드가 생성

똑같은 변수

 

상속

객체가 다른 객체를 물려받는 기능

코드의 중복을 제거 가능 - 재활용성이 높음

class MultiplicationableCalculator extends Calculator {
    public void multiplication() {
        System.out.println(this.left * this.right);
    }
}
 
public class CalculatorDemo2 {
 
    public static void main(String[] args) {
 
        MultiplicationableCalculator c1 = new MultiplicationableCalculator();
        c1.setOprands(10, 20);
        c1.sum();
        c1.avg();
        c1.multiplication();
    }
 
}
 

계산기

sum, avg의 코드를 재활용, multiplication 추가

 

초기화

super(left, right); //부모 class의 생성자
 

super class 밑에 해야함


예제문제

<1>

 

public class Pet {
	String dog, cat;
	
	public Pet(String dog, String cat) {
		// TODO Auto-generated constructor stub
		this.dog=dog;
		this.cat=cat;
	}
		
	public void move() {
		System.out.println(this.dog+"가 움직입니다.\n"+this.cat+"가 움직입니다.");
	}
	
	public void age() {
		System.out.println(this.dog+"는 8개월 입니다.\n"+this.cat+"는 13개월입니다.");
	}
	
	public static void main(String[] args) {
		Pet c1 = new Pet("강아지", "고양이");
		c1.move();
		c1.age();
		
		System.out.println("현재 우리집 애완동물 수는 2마리 입니다.");

	}
}
 

<2>

class Cat{
	String name;
	int weight, age;
	
	public Cat(String name) {
		this.name = name;
	}
	
	public void setOprands(int weight, int age) {
		this.weight = weight;
		this.age= age;
	}
	
	public void cat_() {
		System.out.println(this.name+"(이)는" + this.weight+"kg이고" + this.age+"살이다.\n");
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Cat c1 = new Cat("나비");
		
		c1.setOprands(5,3);
		c1.cat_();

	}
}