1) 정처기 카운트다운 프로그램 만들기
1-1) java 버전 : 계속해서 시간 카운트하고 따로 페이지가 뜨는게 아니라 바로 파이썬으로 변경
package java0328;
import java.time.Duration;
import java.time.LocalDateTime;
public class Countdown {
public static void main(String[] args) {
LocalDateTime endDateTime = LocalDateTime.of(2023, 5, 13, 0, 0, 0);
LocalDateTime nowDateTime;
while (true) {
nowDateTime = LocalDateTime.now();
if (nowDateTime.isAfter(endDateTime)) {
System.out.println("Time's up!");
break;
}
Duration duration = Duration.between(nowDateTime, endDateTime);
long days = duration.toDays();
long hours = duration.toHours() % 24;
long minutes = duration.toMinutes() % 60;
long seconds = duration.getSeconds() % 60;
String remainingTime = String.format("%02d:%02d:%02d:%02d", days, hours, minutes, seconds);
System.out.println(remainingTime);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
나오는 결과는
1-2) python버전 : GUI를 이용해서 만드면 따로 페이지를 만들 수 있다
정보처리기사를 합격하고
자하는 염원을 담아 chat gpt한테 물어보았고 상세히 알려주심요~~
나온결과는
2) 패키지
2-1) 의미
- 클래스 파일을 묶어서 관리하기 위한 수단으로 파일 시스템의 폴더를 이용
- 패키지에 의한 장점
- 패키지마다 별도의 이름 공간이 생기기 때문에 클래스 이름의 유일성을 보장
- 클래스를 패키지 단위로도 제어할 수 있기 때문에 좀 더 세밀하게 접근 제어
2-2) 패키지 선언
- 주석문을 제외하고 반드시 첫 행에 선언해야 한다.
- 패키지 이름은 모두 소문자로 명명하는 것이 관례이며, 대개 회사의 도메인 이름을 역순으로 사용한다.
2-3) import문
- 패키지의 경로를 미리 컴파일러에게 알려주는 문장
- import 문은 소스 파일에서 package 문과 첫 번째 클래스 선언부 사이에 위치
2-4) 상속과 접근 제어
- 접근 지정자의 접근 범위
접근 지정자 | 동일클래스 | 동일 패키지 | 자식 클래스 | 다른 패키지 |
public | o | o | o | o |
protected | o | o | o | x |
default(없음) | o | o | x | x |
private | o | x | x | x |
자바하면서 정말 중요하다고 말씀해주신 부분이 몇 없었는데 정말 강조하신거 중에 하나에요~~ 아좌좌 다 외워보장
- 접근 지정자 사용 시 주의 사항
- private 멤버는 자식 클래스에 상속되지 않는다
- 클래스 멤버는 어떤 접근 지정자로도 지정할 수 있지만, 클래스는 protected, private으로 지정할 수 없다
- 메서드를 오버라이딩할 때 부모 클래스의 메서드보다 가시성을 더 좁게 할 수는 없다
2-5) final 클래스
- final 메서드는 더 이상 오버라이딩할 수 없는 종단의 메서드이다
=> 따라서 부모 클래스에서 정의한 final 메서드를 자식 클래스는 수정 없이 그대로 사용하여야 한다.
- final 클래스는 클래스 내부의 모든 메서드를 오버라이딩할 수 없고 특정 메서드만 오버라이딩하지 않도록 하려면 final 메서드로 선언하면된다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
java 기초(문자열의 선언과 생성, 문장열의 비교, 문자열의 다양한 연산, String 클래스에서 제공하는 유용한 정적 메서드, 배열기초) (0) | 2023.04.06 |
---|---|
java 기초 (제어문, 조건문, 반복문, 분기문...) (0) | 2023.04.02 |
연산자, 상속(상속의 필요성, 상속이란, 상속의 선언, 메서드 오버라이딩, 오버로딩 비교) (0) | 2023.03.27 |
java 기초(배열 응용, 가변 개수 인수, 객체의 타입, 열거 타입 ), 특수문자 원주율(π) 쓰는 법 (0) | 2023.03.25 |
java 예제 문제 풀기(숫자 더하기, 짝수 출력하기, 소수 구하기, 피보나치 수열 작성하기, 10진수를 2진수로 바꾸기) (0) | 2023.03.22 |