728x90
반응형
728x90
반응형
패키지 Package 서로 관련된 클래스의 묶음 클래스는 .class 파일, 패키지는 폴더, 하위 패키지는 하위 폴더 rt.jar이 클래스들을 압축한 파일 java9 부터 module로 변경되어 잘게 쪼개짐 = 용량 간소화 목적 첫번째 문장으로 단 한번만 선언 같은 소스 파일의 클래스는 모두 같은 패키지(첫문장)에 속함 패키지 선언이 없으면 unnamed의 패키지에 선언이 됨 (이름없는 패키지) 클래스 패스(classpath) 제어판 > 환경변수 > 추가 > 명령 프롬프트에서 읽어올 파일 경로를 추가 추가할 때 이름은 classpath, 경로는 폴더에서 복붙 지정한 후 java (읽을 클래스 파일 정확하게 입력)
참조변수(super) IV, LV 구별에 사용되는 this 와는 다르게 super는 조상멤버와 자신의 멤버를 구별할 때 사용 super는 parent의 x로 구별하여 사용하고 this는 child의 x로 구별하여 사용함 일반 x는 child의 멤버변수로 오버라이딩되어 20으로 출력됨 조상의 변수가 존재하지만 자식의 변수가 존재하지 않을 때는 this를 사용해도 조상의 변수로 사용됨 ( = 10으로 통일) 출력문: x = 20 super.x = 10 this.x = 20 public static void main(String[] args) { child c = new child(); c.method(); } } class parents{ int x = 10; } class child extends pare..
단일 상속 Java는 단일 상속만을 허용한다. 아래와 같은 두개의 상속은 불가 ( C++만 가능) class SmartTv extends TV, option{ 따라서 비중이 높은 클래스는 상속으로, 비중이 낮은 클래스는 포함으로 하여 코드의 간결화 가능 아래는 SmartTV에서 비중이 높은? DVD클래스를 상속받고 TV클래스를 포함시켜 channel 값을 지정한 다음 메서드만 출력받아 아래와 같이 출력 출력문: 1 10 public static void main(String[] args) { SmartTv st = new SmartTv(); st.channel = 0; st.channelup(); System.out.println(st.channel); st.fast(); System.out.printl..
상속 inheritance 기존의 class에서 새로운 class를 작성하는 것 (코드의 재사용) 두 class를 부모와 자식의 관계로 맺어주는 것 상속 inheritance를 쓰는 이유 적은 양의 코드를 사용하여 새로운 class 작성 가능 공통적으로 코드를 관리 가능 (새롭게 추가 or 변경) = 유지보수 용이 아래와 같이 지정할 수 있음 extends 함수를 사용 class parents{} class child extends parents{} 자식은 조상(부모의 부모...부모) 모든 멤버 변수를 상속받는다 다만 생성자와 초기화 블럭 제외 따라서 자식의 멤버변수는 항상 부모와 같거나 많다 class parents{ int age; } class child extends parents{} // cla..
TV 리모컨 메서드 작성 예시 channelup, channeldown, volumeup, volumedonw 메서드를 작성하여 main 함수안에 print문으로 출력함 final 상수 값을 지정하여 최대 채널값, 최소 볼륨값을 넘어가면 변동이 안되도록 조건문 삽입 public static void main(String[] args) { MyTV tv = new MyTV(); tv.channel = 100; tv.volume = 0; System.out.println("CH: " + tv.channel + " VOL: " + tv.volume); tv.channelup(); tv.volumedown(); System.out.println("CH: " + tv.channel + " VOL: " + tv.v..
숫자 섞기 메서드 생성 int 배열을 매개변수로 줄 때 그 배열의 숫자를 자동으로 섞는 메서드 생성 출력문 : [6, 7, 9, 4, 5, 2, 8, 1, 3] 숫자 배열을 섞는 알고리즘은 동일함. 같은 알고리즘을 메서드로 생성하여 재사용이 가능한 코드로 만듬 public static void main(String[] args) { int[] original = {1,2,3,4,5,6,7,8,9}; ArrayShuffle as = new ArrayShuffle(); as.shuffle(original); } } class ArrayShuffle{ //메서드 public void shuffle(int[] a) { Random random = new Random(); for(int i = 0; i
겹치는 숫자 제거 문제 0-9부터 입력 시 겹치는 숫자가 있으면 false, 없으면 true 반환 일단 string 배열을 scanner로 입력받아서 .split("")으로 개별로 분할한다 받은 문자열을 Arrays.sort()를 사용하여 오름차순으로 정렬 오름차순으로 정렬된 문자열(숫자)를 1번째와 2번째를 비교하여 만약 같다면 겹치는 문자열이 있다는 뜻 따라서 겹치는 문자가 있다면 false를 출력 후 시스템을 종료 겹치는 문자가 없다면 반복문을 탈출하여 true 출력 package CodingTestLv1; import java.util.Arrays; import java.util.Scanner; public class Z_TestforRename2 { public static void main(S..
피보나치 수열 package CodingTestLv1; public class Fibonachi { public static void main(String[] args) { //예) 0, 1, 1, 2, 3, 5, 8, 13 21 34 55 //피보나치 수열이란, 첫 번째 항의 값이 0이고 두 번째 항의 값이 1일 때 //이후의 항들은 이전의 두 항을 더한 값으로 이루어지는 수열을 말한다. int count = 10; for(int i = 0; i