JAVA 5일차

MOZZI KIM·2022년 10월 28일
0

JAVA

목록 보기
5/21
post-thumbnail

1.아래의 Star를 찍으시오.

*****
*****
*****
*****
*****


public static void main(String[] args) {
	for(int i=1; i<=5; i++) {
		for(int j=1; j<=5; j++) {
			System.out.print("*");
		}
		System.out.println();
	}

}
*
**
***
****
*****

public static void main(String[] args) {
	for(int i=1; i<=5; i++) {
		for(int j=1; j<=i; j++) {
			System.out.print("*");
		}
		System.out.println();
	}

}
   *
  ***
 *****
*******

public static void main(String[] args) {
	for(int i=1; i<=4; i++) { //4줄 찍는 용
		for(int j=1; j<4-i+1; j++) { //공백 만드는 코드
			System.out.print(" ");
		}
		for(int x=1; x<=i*2-1; x++) { //별 찍는 코드 , 홀수여야 *양쪽이 동일한 모양이 된다.
			System.out.print("*");
		}
		System.out.println();
	}
}

2. 아래가 의도하지 않은 결과를 나타내는 이유를 설명하시오.

char ch = '가';
System.out.println(ch + '\n')

'가' 의 유니코드 값과 '\n'의 유니코드 값이 int형식으로 연산되어 int 값이 출력된다.
의도를 표현하기 위해서는 '\n'을 "\n" 로 바꿔줘야한다.

ch + "\n"가 되는 이유
ch 는 char타입, \n 은 String타입이기 때문에 ch가 String 타입으로 변환된 후에 연산이 되어 문자열로 출력되는 것이다.


3. 변수의 scope 는?

Scope란 영역, 범위을 나타냄.

  • 변수는 변수가 선언된 시점부터 그 중괄호 블럭 안에서 사용 가능하다.
  • 클래스 밖에서 변수 선언은 불가능함
  • 같은 영역 내에서 동일 이름의 변수 선언 불가

4. 지역변수?

변수는 "선언위치"에 따라 전역변수와 지역변수로 나눠진다.

- 전역변수(Global variable)
어느 위치에서든 호출하면 사용이 가능. (함수 밖에 선언하여 클래스 전체에서 사용이 가능한 변수)

- 지역변수(Local variable)
특정구역({ }) 내에서 생성되어 그 구역에서만 사용함.
(함수 속에 선언되어 해당 함수 속에서만 사용이 가능한 변수)


5. 인스턴스 변수란?

인스턴스 변수(instance variable)

  • 클래스(예: 멤버 변수)에 정의된 변수로, 이를 위해 각각의 인스턴스화된 클래스의 객체가 별도의 사본이나 인스턴스를 가지고 있다. 인스턴스 변수는 클래스 변수와 비슷하다.

  • 인스턴스 변수는 클래스 변수가 아니지만 유사점이 있다. 클래스 속성(클래스 프로퍼티, 필드, 데이터 멤버)의 일종이다. 인스턴스와 클래스 멤버 간에 동일한 이분법이 메소드(멤버 함수)에도 적용되며, 클래스는 인스턴스 메소드와 클래스 메소드를 둘 다 소유할 수 있다.

  • 각 인스턴스 변수는 오브젝트의 소유 기간 동안 메모리에 상주한다.

  • 변수는 오브젝트가 자기 자신을 알고 있는 속성이다. 오브젝트의 모든 인스턴스들은 자신만의 인스턴스 변수의 사본을 가지고 있으며, 값이 객체마다 동일하다고 하더라도 그러하다. 하나의 객체 인스턴스는 다른 모든 인스턴스에 영향을 미치지 않고서도 인스턴스 변수들의 값을 바꿀 수 있다. 인스턴스 변수들은 메소드가 정적으로 선언되어 있지 않은 경우 모든 클래스 메소드들에 의해 사용될 수 있다.

)
struct Request {

    static int count1; // 변수 이름은 중요하지 않다
    int number;

    Request() {
        number = count1; // 인스턴스 변수 "this->number"를 수정한다
        ++count1; // 클래스 변수 "Request::count1"를 수정한다
    }

};

int Request::count1 = 0;

6. 클래스의 구성

- 클래스의 구성

변수(데이터)와 함수(기능: 변수 컨트롤)


7. 원의 넓이는 구하는 프로그램을 아래와 같이 작성하시오.

-원클래스를 만들것
-메인 메소드를 가진 다른 클래스에서 원 객체를 생성할것
public class Circle {

   double radius;
   public double getRadius() {
   		return radius;
	}

	public void setRadius(double radius) {

   		this.radius = radius;
    }


    public double circleArea(double radius) { //원의 넓이를 구하는 함수
          return radius * radius * Math.PI; //결과값을 호출한 곳으로 리턴함
       }
}



public class CircleMain {

  public static void main(String[] args) {

       Circle circle = new Circle();
       circle.setRadius(10);

       double area;
       area = circle.circleArea();
       System.out.println("원의 넓이는: "+ area);
    }

}

8. 객체란 무엇인가?

객체(instance)
'클래스'라는 틀을 통해 만들어낸 실체를 말한다.
객체를 생성한다는 것은 해당 클래스의 .class 파일을 메모리에 올린다는 것을 의미한다.


9. 아래와 같이 출력이 나오도록 함수를 하나 만드시오.

1부터 10까지의 합 : 55 
1부터 20까지의 합 : 210 
1부터 30까지의 합 : 465 
1부터 40까지의 합 : 820 
1부터 50까지의 합 : 1275 
1부터 60까지의 합 : 1830 
1부터 70까지의 합 : 2485 
1부터 80까지의 합 : 3240 
1부터 90까지의 합 : 4095 
1부터 100까지의 합 : 5050
public static void main(String[] args) {
	
Total(10);
Total(20);
Total(30);
Total(40);
Total(50);
Total(60);
Total(70);
Total(80);
Total(90);
Total(100);
}

public static void Total(int num) {
	int sum = 0;
	for(int i=1; i<=num; i++) {
		sum += i;
	}
	System.out.println("1부터 " + num + "까지의 합: " + sum);
}

10. 아래와 같이 나오도록 함수를 만드시오.

1+2+3+4+5+6+7+8+9+10 = 55

public static void main(String[] args) {
		int sum = 0;
		for(int i=1; i<=10; i++) {
			sum += i;
			
			if(i<10)
				System.out.print(i + "+");
			else
				System.out.print(i + " = " + sum);
		}
	}

11. 아래와 같이 출력되도록 하시오.

123456789
12345678
1234567
123456
12345
1234
123
12
1
public static void main(String[] args) {
	for(int i=9; i>0; i--){
		for(int j=1; j<=i; j++){
			System.out.print(j);
		}
		System.out.println();
	}
}

12. 아래와 같이 출력되도록 하여라

*********(7)
*****(5)
***(3)
*(1)
	public static void main(String[] args) {
		for(int i=7; i>0; i--){
			if(i % 2 != 0) {
				for(int j=1; j<=i; j++){
					System.out.print("*");
				}
				System.out.print("(" + i + ")");
				System.out.println();
			}
			else {
				continue;
			}
		}
	}
profile
코린이

0개의 댓글