Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem05 lcqff #30

Merged
merged 7 commits into from
Jul 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions src/main/java/Problem/lcqff/Chapter5/Calculator.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package Problem.lcqff.Chapter5;

import java.util.ArrayList;

public class Calculator {

int value;
Expand All @@ -8,6 +10,21 @@ public class Calculator {
this.value = 0;
}

int avg(int[] data) {
int sum = 0;
for (int num:data) sum += num;
return sum/ data.length;
}

int avg(ArrayList<Integer> data) {
int sum = 0;
for (int num:data) sum += num;
return sum/ data.size();
}

boolean isOdd(int num) {
return num%2==0 ? false : true;
}
void add(int val) {
this.value += val;
}
Expand Down
23 changes: 12 additions & 11 deletions src/main/java/Problem/lcqff/Chapter5/Q01.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,22 @@

public class Q01 {

/**
* UpgradeCalculator
*/
public static class UpgradeCalculator extends Calculator {
void minus(int num) {
this.value -= num;
}
}

public static void main(String[] args) {
Calculator cal = new Calculator();
cal.add(10);
System.out.println(cal.getValue()); // 10 출력
System.out.println("Calculator value:"+cal.getValue()); // 10 출력

// TODO: Calculator 클래스를 상속하는 UpgradeCalculator를 만들고 값을 뺄 수 있는 minus 메서드를 추가해 보자.
/** 다음과 같이 동작하는 클래스를 만들어야 한다.
*
* UpgradeCalculator cal = new UpgradeCalculator();
* cal.add(10);
* cal.minus(3);
* System.out.println(cal.getValue()); // 10에서 3을 뺀 7을 출력
*/
UpgradeCalculator upgradedCal = new UpgradeCalculator();
upgradedCal.add(10);
upgradedCal.minus(3);
System.out.println("UpgradeCalculator value:"+upgradedCal.getValue());
}
}

28 changes: 17 additions & 11 deletions src/main/java/Problem/lcqff/Chapter5/Q02.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,24 @@

public class Q02 {

/**
* MaxLimitCalculator
*/
public static class MaxLimitCalculator extends Calculator {
void add(int num) {
if (value+num<=100)
value += num;
else {
System.out.println("100 넘으면 안됨!! num should be less then "+(100-value));
}
}
}

public static void main(String[] args) {
// TODO: 객체변수 value가 100 보다 큰 값은 가질 수 없도록 제한하는 MaxLimitCalculator 클래스를 만들어 보자.

/** 다음과 같이 동작하는 클래스를 만들어야 한다. (단 MaxLimitCalculator 클래스는 반드시 다음의 Calculator 클래스를 상속해서 만들어야 한다.)
*
* MaxLimitCalculator cal = new MaxLimitCalculator();
* cal.add(50); // 50 더하기
* cal.add(60); // 60 더하기
* System.out.println(cal.getValue()); // 100 출력
* */
MaxLimitCalculator MaxLimitCal = new MaxLimitCalculator();
MaxLimitCal.add(50);
MaxLimitCal.add(60);
System.out.println("current value:" + MaxLimitCal.getValue());
}
}



12 changes: 3 additions & 9 deletions src/main/java/Problem/lcqff/Chapter5/Q03.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
package Problem.lcqff.Chapter5;

public class Q03 {

/**
* 홀수 짝수 판별하기
*/
public static void main(String[] args) {
// TODO: 다음과 같이 주어진 정수가 홀수인지 짝수인지 판별해 주는 Calculator 클래스의 메서드를 작성하시오. (홀수이면 true, 짝수면 false를 리턴해야 한다.)
/**
* Calculator cal = new Calculator();
* System.out.println(cal.isOdd(3)); // 3은 홀수이므로 true 출력
* System.out.println(cal.isOdd(4)); // 4는 짝수이므로 false 출력
*/
Calculator cal = new Calculator();
System.out.println(cal.isOdd(3)); // 3은 홀수이므로 true 출력
System.out.println(cal.isOdd(4)); // 4는 짝수이므로 false 출력
}
}
28 changes: 11 additions & 17 deletions src/main/java/Problem/lcqff/Chapter5/Q04.java
Original file line number Diff line number Diff line change
@@ -1,27 +1,21 @@
package Problem.lcqff.Chapter5;

public class Q04 {
import java.util.ArrayList;
import java.util.Arrays;

/**
* 평균값을 구하는 메서드
*/
public class Q04 {
public static void main(String[] args) {

// TODO: 다음과 같이 정수 배열 또는 정수의 리스트로 그 평균값을 구해 리턴하는 Calculator 클래스를 작성하시오. (메서드 오버로딩을 사용해 보자.)
int[] data = {1, 3, 5, 7, 9};
Calculator cal = new Calculator();
int result1 = cal.avg(data);
System.out.println("average1: "+result1); // 5 출력

/** 정수 배열 사용 예
*
* int[] data = {1, 3, 5, 7, 9};
* Calculator cal = new Calculator();
* int result = cal.avg(data);
* System.out.println(result); // 5 출력
*/
ArrayList<Integer> data2 = new ArrayList<>(Arrays.asList(1, 3, 5, 7, 9));
Calculator cal2 = new Calculator();
int result2 = cal2.avg(data2);
System.out.println("average2: "+result2); // 5 출력

/** 정수 리스트 사용 예
* ArrayList<Integer> data = new ArrayList<>(Arrays.asList(1, 3, 5, 7, 9));
* Calculator cal = new Calculator();
* int result = cal.avg(data);
* System.out.println(result); // 5 출력
*/
}
}
8 changes: 4 additions & 4 deletions src/main/java/Problem/lcqff/Chapter5/Q05.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ public class Q05 {
public static void main(String[] args) {
// TODO: 다음 프로그램의 출력결과를 예측하고 그 이유에 대해서 주석으로 설명하시오.

ArrayList<Integer> a = new ArrayList<>(Arrays.asList(1, 2, 3));
ArrayList<Integer> b = a;
a.add(4);
System.out.println(b.size());
ArrayList<Integer> a = new ArrayList<>(Arrays.asList(1, 2, 3)); // a는 ArrayList 객체를 참조하고 있다.
ArrayList<Integer> b = a; // 새로운 변수 b에 a를 할당하므로써 a와 b는 동일한 ArrayList 객체를 참조하게 된다.
a.add(4); //a가 참조하는 ArrayList에 4를 추가한다. 이는 b가 참조하고 있는 arrayList와 동일하다.
System.out.println(b.size()); //b가 참조하는 ArrayList의 크기를 출력한다.
}
}
3 changes: 3 additions & 0 deletions src/main/java/Problem/lcqff/Chapter5/Q06.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,8 @@ public static void main(String[] args) {
Calculator cal = new Calculator();
cal.add(3); // 여기서 NullPointerException 이 발생한다.
System.out.println(cal.getValue());

// Integer 클래스를 사용해 선언된 변수는 null로 초기화 된다. 따라서 초기화 하지 않고 사용할 경우 NullPointException이 발생한다.
// int로 선언된 변수는 기본적으로 0으로 초기화된다. 따라서 따로 초기화 하지 않아도 NullPointException이 발생하지 않는다.
}
}