728x90
반응형
728x90
반응형
생성자 안의 객체 생성 시 컴파일 오류 강사님이 Calculator라는 클래스를 정의할 때 클래스 안의 다른 2개의 클래스들을 다른 클래스에서도 선언하기 위해 그 클래스들의 객체를 필드 값에 정의한 내용이다. 이때 나의 질문 내용은 필드값에 객체를 한번에 선언하여 Calculator 라는 클래스를 통해 다른 클래스의 메서드들을 접근하는 것과 생성자에 객체의 주소값을 별도로 메모리에 할당하는 것의 차이점을 여쭤보는것이었다. 강사님은 두개에 별다른 차이점은 없고 컴파일 시 오류가 나지 않지만, 자바 안의 생성자의 목적(값을 초기화) 에 맞게 별개로 객체를 정의하여 생성자에 별도로 정의하는 것이 좋다고 하셨다. 아래는 질문을 드릴 때 사용되었던 코드. Calculator를 실행시키기 위해 사용되었던 Main ..
접근제어자 private private을 넣으면 현재 클래스에서만 접근 가능하도록 데이터의 접근 범위를 제한 따라서 다른 클래스에서 Mart를 선언하여 출력한다고 해도 오류가 발생함 public class Mart { //field private int benefit; // 이윤 private int applenumber; //사과 잔고 private int appleprice; //사과 단가 아무것도 지정안할 경우에는 default값으로 지정되는데 default값은 같은 package내에서 접근이 가능함 public일 경우에는 어디서나 이클립스 안이라면 선언이 가능하다 public class Mart { //field int benefit; // 이윤 public int applenumber; //사과..
객체지향 정의: 객체지향이란 각각의 기능에 맞게 클래스들을 생성하여 프로그램의 기능을 구현하기 쉽게 만들고 나중에 유지보수나 재사용을 쉽게 가능하게 만들어주는 것. 각각의 클래스들을 만들때 필드(멤버변수 IV), 생성자, 메서드(행동, 기능)들을 만들어준다. 사과 판매를 예시로 하여 설명하였는데 필드, 생성자, 메서드를 아래와 같이 선언해준다. 판매자의 입장에서 필요한 멤버변수는 (1)개당 이윤과 (2)현재 사과의 잔고 (3) 사과 단가이기 때문에 필드에 3개의 변수를 선언했다. 필드는 그 클래스의 기능에 필요한 멤버변수를 선언한다 public class Mart { //field int benefit; // 이윤 int applenumber; //사과 잔고 int appleprice; //사과 단가 생..
상속 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