Java_패키지

ChoRong0824·2023년 5월 15일
0

Java

목록 보기
19/31
post-thumbnail

자바 패키지 설명 및 패키지 사용하여 문제푸는 법을
간단하게 학습 및 포스팅하였습니다.

Java 패키지

Java에서 패키지(package)란 관련된 클래스들을 그룹화하여 관리하기 위한 방법입니다.
패키지는 폴더 구조와 비슷한 형태를 가지며, 클래스 파일들을 서로 다른 패키지에 넣어서 관리하게 됩니다.

패키지의 두 가지 이점

첫 번째로,
패키지를 사용하여 클래스 이름 충돌을 방지할 수 있습니다.
즉, 서로 다른 패키지에 있는 동일한 클래스 이름이 충돌하는 경우를 방지할 수 있습니다.
두 번째 이점,
클래스들을 논리적으로 그룹화하여 개발을 용이하게 합니다.
즉, 관련된 클래스들을 한 곳에 모아서 개발하고 유지보수하기 용이합니다.

패키지는 다음과 같은 형태로 작성됩니다.

java
package com.example.mypackage;

위의 예시에서 패키지 이름은 "com.example.mypackage" 입니다.
패키지 이름은 일반적으로 역순 도메인명을 포함하며, Java에서 제공하는 패키지와 충돌하지 않도록 한 개발자가 패키지를 지을 때 보통 사용하는 패턴입니다.
패키지 선언은 소스 파일의 첫 줄에 위치해야 하며, 패키지 선언을 생략할 수도 있습니다.
이 경우에는 이 소스 파일이 속한 패키지가 default 패키지가 됩니다.

랜덤 함수 문제

1부터 10 사이의 숫자가 무작위로 10개 출력되는 코드를 작성

예시) [ 2, 3, 9, 8, 0, 8, 5, 7, 2, 1 ]
// 이때, 0은 출력되면 안된다.

결과

9 10 9 3 2 5 10 3 4 5

code



public class MathRandom {
    public static void main(String[] args) {

        // [1] : 반복문 --> 랜덤 숫자 생성
        // 랜덤 숫자 생성중 0을 제외하려면 ? --> ???
        for (int i = 0; i < 10; i++) {
            System.out.print((int)(Math.random()*10+1)+" "); // 이 함수가 반환하는 타입이 double 로 실수임 --> 따라서, 정수형으로 받게되면 ERR. --> 형변환 해줘야함
            // --> 이렇게 해주면 0이 출력될 수 있음.
            // 랜덤 숫자 생성중 0을 제외하려면 ? --> 1.  결과로 나오는 숫자에 1을 더해준다. (어차피 1을 더해줘도 랜덤해주는 숫자이기 때문에 무상관)
            // 또는, 2. 배열을 지정해줘서 if문 돌리기 (내생각)
        }
    }
}

여기서 문제 ,


public class MathRandom {
    public static void main(String[] args) {

        // [1] : 반복문 --> 랜덤 숫자 생성
        // 랜덤 숫자 생성중 0을 제외하려면 ? --> ???
        for (int i = 0; i < 10; i++) {
            System.out.println((Integer)(Math.random()*10)); // 이 함수가 반환하는 타입이 double 로 실수임 --> 따라서, 정수형으로 받게되면 ERR. --> 형변환 해줘야함

        }
    }
}

--> 결과값은 ?

이유

Math.random() 메소드는 double 값을 반환합니다.
double 값을 정수 값으로 형변환 할 때 Integer 클래스를 사용하면 안되는 이유는 Integer 클래스의 형변환 메소드는 double 값을 인자로 받을 수 없기 때문입니다.
따라서, int 타입으로 바로 형변환하거나, double 값을 long으로 변환한 뒤 int로 형변환하는 방법을 사용해야 합니다.

profile
컴퓨터공학과에 재학중이며, 백엔드를 지향하고 있습니다. 많이 부족하지만 열심히 노력해서 실력을 갈고 닦겠습니다. 부족하고 틀린 부분이 있을 수도 있지만 이쁘게 봐주시면 감사하겠습니다. 틀린 부분은 댓글 남겨주시면 제가 따로 학습 및 자료를 찾아봐서 제 것으로 만들도록 하겠습니다. 귀중한 시간 방문해주셔서 감사합니다.

0개의 댓글