SW 17일차

Guryena·2023년 1월 17일
0

CS

목록 보기
9/34

1.아래를 이름짓는 방법에 대하여 설명하시오.

철자 규칙

  • 패키지(package)
    패키지와 모듈이름은 각 요소를 점(.)으로 구분하여 계층적으로 짓는다.
    요소들은 모두 소문자 알파벳 혹은 (드물게)숫자로 이뤄진다.
    조직 바깥에서도 사용될 패키지라면 조직의 인터넷 도메인 이름을 역순으로 사용한다. (edu.cmu, com.google)
    패키지 이름은 나머지 해당 패키지를 설명하는 하나 이상의 요소로 이뤄진다. (일반적으로 8자 이하의 짧은 단어 사용, utilities보다는 util처럼 의미가 통하는 약어 추천, 여러 단어로 구성된 이름이라면 awt처럼 각 단어의 첫 글자만 따도 좋음)
  • 클래스, 인터페이스
    하나 이상의 단어로 이뤄지며, 각 단어는 대문자로 시작한다.(List, FutherTask 등)
    여러 단어의 첫 글자만 딴 약자나 max, min처럼 널리 통용되는 줄임말을 제외하고는 단어를 줄여 쓰지 않도록한다.
  • 메서드, 필드이름
    첫 글자를 소문자로 쓴다. 그 외 나머지는 클래스 명명규칙과 같다.
    상수 필드는 예외이며, 상수 필드를 구성하는 단어는 모두 대문자로 쓰며 단어 사이는 밑줄로 구분한다.(VALUES, NEGATIVE_INFINITY 등)
  • 지역변수
    다른 멤버와 비슷한 명명규칙이 적용되며, 약어를 써도 좋다. (약어를 써도 그 변수가 사용되는 문맥에서 의미를 쉽게 유추할 수 있기 때문)
  • 타입 매개변수
    타입 매개변수 이름은 보통 한 문자로 표현한다.
    임의의 타입엔 T, 컬렉션 원소의 타입은 E, 맵의 키와 값에는 K, V, 예외에는 X, 메서드 반환 타입에는 R

문법 규칙

  • 패키지(package)에 대한 규칙은 따로 없다.
  • 클래스, 인터페이스
    객체를 생성할 수 있는 클래스의 이름은 보통 단수 명사나 명사구를 사용한다.(Thread, PriorityQueue, ChessPiece 등)
    객체를 생성할 수 없는 클래스의 이름은 보통 복수형 명사로 짓는다.(Collectors, Collections 등)
    인터페이스 이름은 클래스와 똑같이 짓거나(Collection, Comparator), able 혹은 ible로 끝나는 형용사로 짓는다.(Runnable, Iterable, Accessible)
  • 메서드
    동사나 동사구로 짓는다.(append, drawImage)
    boolean값을 반환하는 메서드라면 보통 is나 has로 시작하고 명사나 명사구, 혹은 형용사로 기능하는 아무 단어나 구로 끝나도록 짓는다. (isDigit, isProbablePrime, isEmpty, isEnabled ..)
    반환 타입이 boolean이 아니거나 해당 인스턴스의 속성을 반환하는 메서드의 이름은 보통 명사, 명사구, 혹은 get으로 시작하는 동사구로 짓는다.(size, hashCode, getTime)
    객체의 타입을 바꿔서, 다른 타입의 또 다른 객체를 반환하는 인스턴스 메서드의 이름은 보통 toType 형태로 짓는다.(toString, toArray)
    객체의 값을 기본 타입 값으로 반환하는 메서드의 이름은 보통 typeValue 형태로 짓는다.(intValue)
    정적 팩터리의 이름은 다양하지만 from, of, valueOf, instance, getInstance, newInstance, getType, newType을 흔히 사용한다.

camel case
카멜 표기법(Camel case 카멜 케이스) 또는 낙타 표기법은 프로그래밍에서 파일, 변수, 함수 등 대상의 이름을 띄어쓰기 없이 짓기 위하여 따르는 관례인 네이밍컨벤션(Naming convention)의 하나다.
단어 전체적으로 소문자를 사용하지만, 맨 첫 글자를 제외한 각 합성어의 첫 글자만 대문자로 표기한다. 합성한 단어의 모양이 쌍봉낙타의 등과 비슷하다는 뜻에서 이름붙었다.

snake case
스네이크 표기법(Snake case 스네이크 케이스) 또는 스네이크 표기법은 프로그래밍에서 파일, 변수, 함수 등 대상의 이름의 띄어쓰기를 언더바(_)로 표기하는 관례인 네이밍 컨벤션(Naming convention)이다.
변수의 형태가 뱀과 같다는 뜻에서 이름붙었다.

2.package의 용도는?

  • package란 class들의 집합체이다.
    패키지를 통해서 라이브러리끼리 구분이 가능하다.
    패키지를 사용하는 이유는 클래스명의 고유성을 보장하기 위함이다.
    때로는 서로 다른 용도의 라이브러리를 도입할 때 이름이 충돌하는 클래스들이 있을 수 있는데, 이 경우 패키지 기능을 사용하여 클래스의 이름이 충돌하는 것을 방지할 수 있다.

3.아래를 프로그래밍 하시오.

패키지 com.global.ex -> Baby
패키지 com.global.ex2 -> Baby

패키지 디폴트 : BabyMain 에서

com.global.ex -> Baby 객체생성
com.global.ex2 -> Baby 객체 생성

출력
com.global.ex 베이비 입니다.
com.global.ex2 베이비 입니다.

package com.global.ex;

public class Baby {
	public Baby() {
		System.out.println("com.global.ex 베이비입니다");
	}
}
package com.global.ex2;

public class Baby {
	public Baby() {
		System.out.println("com.global.ex2 베이비입니다");
	}
}
public class BabyMain {

	public static void main(String[] args) {
		com.global.ex.Baby babyEx = new com.global.ex.Baby();
		com.global.ex2.Baby babyEx2 = new com.global.ex2.Baby();
	}

}

4.노래를 나타내는 Song이라는 클래스를 설계하라. Song 클래스는 다음과 같은 필드(데이터 멤버)를 갖는다.

● 노래의 제목을 나타내는 title
● 가수를 나타내는 artist
● 노래가 속한 앨범 제목을 나타내는 album
● 노래의 작곡가를 나타내는 composer, 작곡가는 여러 명 있을 수 있다.
● 노래가 발표된 연도를 나타내는 year
● 노래가 속한 앨범에서의 트랙 번호를 나타내는 track
생성자는 기본 생성자와 모든 필드를 초기화하는 생성자를 작성하고, 노래의 정보를 화면에 출력하는 show() 메소드도 작성하라.
ABBA의 “Dancing Queen"노래를 Song 객체로 생성하고 show()를 이용하여 이 노래의 정보를 출력하는 프로그램을 작성하라.

	public static void main(String[] args) {
    
		Song song = new Song("Dancing Queen", "ABBA", 1978, "스웨덴");
		song.show();
	}

출력
1978년 스웨덴국적의 ABBA가 부른 Dancing Queen
public class Song {
	String title;
	String artist;
	String album;
	String composer;
	int year;
	String nationality;
	int track;
	
	public Song(String title, String artist, int year, String nationality) {
		this.title = title;
		this.artist = artist;
		this.year = year;
		this.nationality = nationality;
	}
	void show() {
		System.out.println(year + "년 "+ nationality + "국적의 "+artist + "가 부른 " + title);
	}
}

0개의 댓글