자바메모리구조와 static 파트 관련 질문드립니다.
269
작성한 질문수 6
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
문제2. 수학 유틸리티 클래스 관련 몇가지 질문 드립니다.
1)아래 코드와 같이 sum 등을 따로 private static 변수로 만들어도 되나요?
public class MathArrayUtils {
private static int sum = 0;
private static int min = 0;
private static int max = 0;
private static int[] values;
private MathArrayUtils(){
}
public static int sum(int[] values){
int sum = 0;
for (int value : values) {
sum += value;
}
return sum;
}
public static double average(int[] values){
return (double) sum / values.length;
}
public static int min(int[] values){
min = values[0];
for (int value : values) {
if (value < min){
min = value;
}
}
return min;
}
public static int max(int[] values){
max = values[0];
for (int value : values) {
if(value > max){
max = value;
}
}
return max;
}
}
2) 기존 답 코드의 sum, average 등 static method는 MathArrayUtilsMain에 따로 그 값을 받아줄 변수가 없는데 public static int와 같이 따로 return type을 지정해야 하는 이유가 궁금합니다.
static이어서 생성자를 생성하지 않고, 클래스에서 바로 값을 가져오기 때문에 따로 반환 값을 받아줄 변수를 지정하지 않아도 되는 것인가요?
답안 예시처럼 MathArrayUtils.sum(values)이라면 따로 method 결과값을 받아줄 변수가 없다면 없어도 되는 건 아닌지 질문드립니다.
3) MathArrayUtils 클래스에 private int[] values와 같이 array변수를 생성하지 않아도 되나요? 바로 Main메서드에서 array 변수를 생성 및 초기화하고 그 값이 클래스 메서드의 매개변수로 전달될 수 있는 건가요?
답변 1
0
안녕하세요. core12님, 공식 서포터즈 David입니다.
이런 경우에는 클래스 변수를 사용하시면 안 됩니다. 여러 곳에서 해당 클래스를 사용할 시, 클래스 변수의 값은 여러 곳에서 호출되는 메서드로 인해 값이 섞이게 되어 원하는 결과가 나오지 않게 됩니다.
반환 값이 있어야 println 문에서 호출시 값을 출력할 수 있습니다. 만약 반환값이 없다면 println 문에서 해당 메서드를 호출하여도 결과를 알 수 없습니다.
네, 메인 메서드에서 생성하여 메서드의 매개변수로 전달 가능합니다. 본 강의 배열도입 부분, 기본형과 참조형 섹션을 참고해 주세요.
감사합니다.
질문있습니다
0
27
1
1번 문제 질문입니다.
0
31
1
음악플레이어 문제 중 코드질문
0
26
1
9장 상속 문제와 풀이 질문
0
38
1
강의 자료에 사소한 오타가 있습니다.
0
48
2
매서드 참조값 반환??
0
66
1
접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드
0
70
1
자바 기본편 - .(dot)에 관한 질문입니다!
0
85
1
공부방법
0
74
2
상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?
0
82
1
static method 질문
0
66
1
캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요
0
96
1
Method1에서 Student 객체
0
73
1
3강 18. null 질문
0
68
1
this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?
0
75
1
팩토리 메서드 패턴과 일반 생성자 사용의 장단점
0
97
1
문의
0
104
1
9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다
0
90
1
상속과 그에 따른 메모리 구조 질문
0
62
1
call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다
0
74
1
수강기한
0
135
1
기본편 객체지향 프로그래밍에 대한 정의
0
86
1
섹션10 상속 메모리 구조 및 문제 관련 질문
0
87
1
추가 지식 학습
0
152
2





