TIL

230130 [Java] (접근 제한자 / 객체 배열)

하차모 2023. 1. 30. 17:20

1. 접근 제한자

  종류 : public / protected / default / private

  접근 제한자는 클래스, 멤버변수, 메소드에 사용 가능함

  클래스 - public default

  멤버변수 및 메소드 - 위의 4개 다 사용 가능

 

  1-1. public : 같은 프로젝트 내에서는 어디든 접근 가능

  1-2. default : 같은 패키지 내에서는 접근 가능 (아무것도 안 적었을 때)

  1-3. private : 선언된 클래스 내에서만 접근 가능

 

2. 객체 배열

  모든 자료형에 대해 배열을 만들 수 있으며, 객체도 하나의 자료형이기 때문에 배열로 만들 수 있다.

 

//member 클래스에는 이름과 나이 정보를 담고 있음

//회원 정보를 등록하는 생성자, 회원의 정보를 각각 리턴하는 메소드, 회원의 정보를 출력하는 메소드를 담고 있음

public class Member {
    private String name;
    private int age;

    public Member(String name, int age) {
        this.name = name;
        this.age = age;
    }

	public String getName() {
    	return name;
    }
    public int getAge() {
    	return age;
    }
    
    public void showInfo() {
        System.out.println("이름 : " + name);
        System.out.println("나이 : " + age);
    }
}

//Member 클래스에 대한 객체를 3개 저장할 수 있는 배열을 만듦

public class MemberTest {
    public static void main(String[] args) {
        //Member 객체가 들어갈 수 있는 공간 3개를 생성
        Member[] members; //선언
        members = new Member[3]; //생성

        //Member 객체 생성 후 배열에 담기
        Member m1 = new Member("홍길동",20);
        members[0] = m1;

        Member m2 = new Member("이순신",30);
        members[1] = m2;

		//동시에
        members[2] = new Member("유관순",40);


        //members 배열의 0번째 요소에 들어간 회원의 정보 출력
        members[0].showInfo();

        //members 배열에 저장된 모든 회원의 정보 출력
        for (int i = 0; i < members.length; i++) {
            members[i].showInfo();
        }
        //for-each문으로
        for (Member member : members) {
            member.showInfo();
        }
        
        //회원 중 이름이 "홍길동"인 회원의 나이 출력
        for (int i = 0; i < members.length; i++) {
        	if(members[i].getName().equals("홍길동")) {
            		System.out.println(members[i].getAge());
                	break;
            }
        }
        //for-each문으로
        for (Member member : members) {
        	if(member.getName().equals("홍길동")) {
            		System.out.println(members.getAge());
                	break;
            }
        }
    }
}

 

 

 

 

**새롭게 알게 된 것

네이밍 관습 - 

초기화할 때 (Initialization) init~

등록할 때 (Register) reg~