1. 변수의 스코프에 대하여 설명하시오.
- 그 변수가 살아남을 수 있는 생존 범위.
- 중괄호{} 내에서 선언된 변수는 중괄호를 나가면 죽는다.
2. 지역변수란?
3. 인스턴스 변수란?
- 함수 바깥에 있는 변수.
- class 안에 있다.
4. 아래의 함수를 펙토리얼로 표현하시오.
System.out.println("3 factorial: " + factorial(3));
//
System.out.println("12 factorial: " + factorial(12));
// 코드
static int factorial(int n) {
if (n == 1) {
return n = 1;
} else {
return (n * factorial(n - 1));
}
}
5.클래스의 구성요소는?
- 데이터: 변수를 선언하고 메모리에 데이터를 올린다.
- 기능: 함수 등으로 연산한다.
6.원의 넓이는 구하는 프로그램을 아래와 같이 작성하시오.
- 원클래스를 만들것
- 변수 radius
- 변수 radius에 대한 setter getter 함수 만들것
- getArea 함수
- 메인 메소드를 가진 다른 클래스(AreaTest)에서 원 객체를 생성할것
// 코드
class Circle {
double radius;
String intro = "원의 반지름은 ";
String outro = " 입니다.";
void setRadius(double radius) {
String print = new String();
print += intro;
print += radius;
print += " 으로 바뀌었습니다.";
System.out.println(print);
this.radius = radius;
}
double getRadius() {
double radius = this.radius;
String print = new String();
print += intro;
print += radius;
print += outro;
System.out.println(print);
return radius;
}
double getArea() {
double area = Math.PI * Math.pow(this.radius, 2);
String print = new String();
print += "원의 넓이는 ";
print += area;
print += outro;
System.out.println(print);
return area;
}
}
class AreaTest {
public static void main(String[] args) {
Circle circle = new Circle();
//
double radius;
radius = circle.getRadius();
//
circle.setRadius(10.);
//
radius = circle.getRadius();
//
double area = circle.getArea();
}
}
7. 객체에 대하여 설명하시오.
- instance 는 class 라는 붕어빵틀에서 찍어져 나온 붕어빵이라고 할 수 있다.
- instance 를 건물, class 를 설계도에 비유하기도 한다.
8. 아래의 클래스에 대하여 객체 생성시, 메모리 그림을 그리시오.
Rectangle rec = new Rectangle()
class Rectangle{
double width = 20;
double height = 20;
//
public double getArea() {
return width * height;
}
public void setWidthHeight(double num1,double num2) {
width = num1;
height = num2;
}
public void setWidth(double num1) {
width = num1;
}
}
9.클래스와 객체의 차이는?
- .class: 붕어빵틀.
- instance: 붕어빵.
10.아래의 프로그램을 작성하시오.
- 1 부터 num 까지 합을 구하는 class 를 작성하도록 하시오
// 코드
class SumFromOne {
final int FIRST_NUM = 1;
int num;
String intro = "합할 마지막 숫자는 ";
String outro = " 입니다.";
void setNum(int num) {
String print = new String();
print += intro;
print += num;
print += " 으로 바뀌었습니다.";
System.out.println(print);
this.num = num;
}
int getNum() {
int num = this.num;
String print = new String();
print += intro;
print += num;
print += outro;
System.out.println(print);
return num;
}
int sumFromOne() {
int sum = 0;
for (int i = FIRST_NUM; i <= num; i++) {
sum += i;
}
String print = new String();
print += this.FIRST_NUM;
print += "부터 ";
print += this.num;
print += "까지 더한 값은 ";
print += sum;
print += outro;
System.out.println(print);
return sum;
}
}
class SumTest {
public static void main(String[] arg) {
SumFromOne sfo = new SumFromOne();
//
int num;
num = sfo.getNum();
//
sfo.setNum(100);
//
num = sfo.getNum();
//
int sum = sfo.sumFromOne();
}
}
11.생성자에 대하여 설명하시오.
- class 이름과 똑같다.
- new Fn() 같은 형태로 작성한다.
- 그 class 를 메모리에 올리는 역할을 한다.
- 변수가 초기화된다.
- return 이 없다.
- 생성자 함수를 따로 만들지 않았을때 javac 가 컴파일과정에서 자동으로 작성한다.
12.생성자의 용도는?
- java 코드를 컴파일한 .class 를 메모리상에 올린다.
13.아래의 클래스를 완성하시오.
Gugudan gugudan = new Gugudan()
gugudan.printGugu(10) // 1단 부터 10단까지 출려
gugudan.printGugu(20) // 1단 부터 20단까지 출려
// 코드
class Gugudan {
final int FIRST_DAN = 1;
final int NINTH_DAN = 9;
String intro = "단부터 ";
String outro = "단까지 구구단";
void printGugu(int lastDan) {
String print = new String();
print += this.FIRST_DAN;
print += intro;
print += lastDan;
print += outro;
print += "을 시작합니다.\n\n";
for (int i = FIRST_DAN; i <= lastDan; i++) {
for (int j = FIRST_DAN; j <= NINTH_DAN; j++) {
print += i;
print += " x ";
print += j;
print += " = ";
print += (i * j);
print += "\n";
};
print += "\n";
};
print += this.FIRST_DAN;
print += intro;
print += lastDan;
print += outro;
print += "이 끝났습니다.\n\n";
System.out.println(print);
}
}