유디의 공간정보·개발일기

4. 0708_생성자함수, if문 (리뷰) 본문

JAVA

4. 0708_생성자함수, if문 (리뷰)

55yudi 2021. 10. 23. 21:06

- 함수 생성 -> main { } 밖에 적고

  함수 실행 -> mian { } 안에 적기 (main 안에서 함수를 호출하는 것)

 

 

- 계산기 기능을 하는 Calc 클래스 만들기

[Calculator class]

package com.lx;

public class Calculator {
	
    // 이름 변수
	String name;
	
	// 더하기 함수
	public int add(int a, int b) {
		return a + b;
	}
	// 빼기 함수
	public int subtract(int a, int b) {
		return a - b;
	}

}

 

[Person class] - calculator class를 import

package com.lx.person;

import com.lx.Calculator;

public class Person {
	
	public String name;
	public String getName;
	
    // 생성자 함수
	public Person() {
		
	}
	
    // 매개변수가 있는 생성자 함수
	public Person(String name) {
		this.name = name;
	}
	
	public String getName() {
		return this.name;		
	}
	
	// calculator를 import하고 calc class에는 public을 붙여 호출가능하도록 함
	public int work() {
		Calculator calc1 = new Calculator(); //변수(calc1)를 만들어서 new Calc 할당
		int result = calc1.add(10, 10);
		
		return result;
	}

}

 

[Test1]

package com.lx;

import com.lx.person.Baby;
import com.lx.person.Person;

public class Test1 {

	public static void main(String[] args) {
		
		String name = "홍길동";
		System.out.println("사람 이름 : " + name);

		int result = add(10, 10);
		System.out.println("더하기 결과 : " + result);
		
        
		//Person호출(사람객체 만들기)
		Person person1 = new Person();
		
		//person1에 있는 변수 work실행하기, 떨어지는 값은 왼쪽에 변수 만들어서 넣기
		int result2 = person1.work();
		System.out.println("일한 결과 : " + result2);
		
		//객체 생성하면서 생성자 함수 실행하기
		Person person2 = new Person("홍길동2");
		System.out.println("두번째 사람 이름 : " + person2.name); //변수 name을 가져와 실행한 것
		System.out.println("두번째 사람 이름 : " + person2.getName()); //함수 getName을 가져와 실행한 것
		

		Baby baby1 = new Baby();
		baby1.name = "김아기";
		String babyName = baby1.getName();
		System.out.println("아기이름 : " + babyName);
		
		if (baby1.name == null) {
			System.out.println("아기이름이 없습니다.");
		} else {
			System.out.println("아기이름이 있습니다.");
		}
	}
	
	static int add(int a, int b) { //static : 정적 메소드, 메모리 저장 영역과 관련
		return a + b;
		
	}
}

--> 위 코드 중 baby1.name값을 지정하지 않으면, if문 baby 결과 : 아기 이름이 없기 때문에 null로 뜬다.

 

 

- if ( ) : 소괄호 안에 조건

  ( ) 라면 { } 안의 내용을 실행

- 변수가 하나 있다면 무엇과 같은지 ==를 붙여서 나타냄

 

 

c.f. == 는 비교하는 두 대상이 실제 메모리 내에서 같은 위치인지를 확인하는 것이고

    .equals() 는 실제 텍스트가 동일한지를 확인하는 것

https://opentutorials.org/module/4378/26781

 

 

[Baby class]

package com.lx.person;

// Person과 같으므로 상속
public class Baby extends Person {
	
    // 함수 추가하고 매개변수로 speed 숫자
	public void walk(int speed) {
		System.out.println("아기가 걸어간다 : " + speed + "km/h");
	}
	
    // 문자 결과를 낼거니까 크기는 string
    // 부모가 갖고있는 함수와 다르게 만들면 에러가 난다.
	public String getName() {
		System.out.println("getName 함수 호출됨");
		return super.name; // super는 부모
	}

}

'JAVA' 카테고리의 다른 글

6. 0712_ try-catch절, Getter and Setter  (0) 2021.10.24
5. 0709_ 널체크(Null Check), ArrayList  (0) 2021.10.23
3. 0707_review  (0) 2021.10.20
2. 0706_생성자(Constructor), Getter and Setter, 상속  (0) 2021.10.20
1. 0705_Java 개요, 문법  (0) 2021.10.20