언어/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_();
}
}