| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- springjdbc
- @RequestParam
- 서비스레이어
- 유효성검사
- .xml
- Model
- @RequestMapping
- 비즈니스레이어
- 바인딩변수
- 어노테이션
- springmvc
- Java
- @ResponseBody
- spring
- 의존주입
- produces
- SpringBoot
- gradle
- frontController
- c:if
- 생성자주입
- MVC
- AOP
- application.properties
- 스프링
- @
- @Valid
- jointpoint
- PointCut
- after-throwing
- Today
- Total
메모장
[과제] 멘토씨리즈 문제풀이 2 본문
배열
- 배열을 생성하는 방법
이차원 배열에서 int [][] arr = new int [][4]; -> 오답 !
int [][] arr = new int [크기][]; -> 정답 : 앞에 배열에 크기를 입력 해주어야 한다. 표기가 틀렸다.
2. 다음코드의 빈칸 (물음표) 을 완성해 주어진 배열에서 짝수만 더하여 합을 구해보세요
package section02;
public class PRACTICE_03_05 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8,9,10};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
?
}
System.out.println("짝수들의 합 :" + sum);
}
}
package section02;
public class PRACTICE_03_05 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8,9,10};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i] % 2 == 0) {
sum += arr[i];
}
System.out.println("짝수들의 합 :" + sum);
}
}
정답 : 조건문을 걸어주어 짝수인 정수를 뽑아주고 그 정수들만 sum이라는 합에 더해서 중첩해서 담는다.
3. 철수는 동생과 카드게임을 했습니다. 카드 게임에 사용된 카드는 중복되는 숫자 없이 총 10장 입니다. 배열과 랜덤 함수를 이용해 철수가 게임에 사용했던 카드를 구해보세요.
카드에 적힌 숫자는 1 부터 10 이며, 카드는 섞여있으므로 순서는 상관 없습니다.
package section02;
import java.util.Random;
public class Test01 {
public static void main(String[] args) {
Random rand = new Random();
int[] data = new int[10];
// 1) 반복을 한다!
// 2) 몇번할지는 모른다! -> while문
int index = 0; // 현재 위치를 나타내는 변수
while (index < data.length) { // data 배열이 완성될때까지 계속
data[index] = rand.nextInt(10) + 1; // 랜덤수를 열심히 저장하고,
// [flag 알고리즘]
boolean flag = false; // 초기상태
// 특별한 일이 발생하면,
// [데이터 중복] 이 발생하면
for (int i = 0; i < index; i++) {
if (data[i] == data[index]) { // 데이터가 중복이야?
flag = true;
}
}
// flag가 true 라면
if (flag) { // data[index]가 이전에 있었다면
continue; // 아래로 내려가면 안된다!!!!!
}
index++; // 다음으로!
}
System.out.print("[");
for (int v : data) {
System.out.print(v + " ");
}
System.out.println("]");
}
}
클래스
1.다음 문장이 맞으면 o표, 틀리면 x표 하세요 .
- 객체를 중심으로 프로그램 구조를 설계하고 프로그래밍하는 것을 객체 지향 프로그래밍 이라고 합니다 ( o )
- 하나의 클래스로 하나의 객체만 만들 수 있습니다. ( x )
2. 다음중 객체가 될 수 있는 것을 모두 고르세요
1) 학생 2) 수영장 3) 꽃 4) 나이
3. 다음 빈칸에 알맞은 단어를 작성해 보세요
- 클래스의 3요소는 (필드),(메서드),(생성자) 입니다.
- 클래스를 선언할 때 (접근제한자) (을)를 이용해 접근 범위를 설정할 수 있습니다.
- 클래스는 크게 (부모)클래스 , (자식)클래스로 분류할 수 있습니다.
4. 다음코드는 컴파일 에러가 발생합니다. 그 이유는 무엇이며, 어떻게 해결해야 할까요?
package section02;
public class PRACTICE_03_05 {
public static void main(String[] args) {
Speaker speaker = new Speaker();
speaker.turnOn();
}
}
class Speaker{
void turnOn() {
static int volume = 50;
System.out.println("스피커의 전원이 켜졌습니다. 기본 볼륨은 "+ volume + " 입니다.");
}
}
정답: 메서드 안에 지역변수는 static으로 선언 할수 없기 때문에 메서드 안 static을 빼줘야 한다.
메서드
- 빈칸에 알맞은 단어 넣기
1) ( 메서드 ) (이)란, 클래스 안에서 특정 기능을 수행하기 위한 코드를 하나의 블록으로 묶어놓은 집합을 말한다.
2) 코드를 따로 분리 하는것을 일종의 ( 모듈화 ) (이)라고 부르는데, 이는 가독성과 유지보수의 효율성을 높여줍니다.
2. 다음 코드를 실행했을 때 콘솔창에 출력되는 결과는 무엇입니까?
package section02;
public class PRACTICE_03_05 {
public static void main(String[] args) {
Person p = new Person();
for (int i = 0; i < 3; i++) {
p.printHello();
}
}
}
class Person{
void printHello() {
System.out.println("Hello");
}
}
정답 : Hello 가 세번 출력된다 ! 메서드에 hello 출력을 정의 해두고 반복문으로 3회 반복 하였으므로 3회 hello가 출력된다.
3. 다음과 같은 결과가 나오도록 빈칸에 알맞은 코드를 작성해 보세요
package section02;
public class PRACTICE_03_05 {
public static void main(String[] args) {
Student stu = new Student();
stu.introduce("철수");
stu.introduce("영희");
}
}
class Student{
void introduce( ) {
?
} 실행결과
} 안녕하세요, 제 이름은 철수입니다.
안녕하세요, 제 이름은 영희입니다.
빈칸과 물음표에 들어갈 말은 ?
package section02;
public class PRACTICE_03_05 {
public static void main(String[] args) {
Student stu = new Student();
stu.introduce("철수");
stu.introduce("영희");
}
}
class Student{
void introduce(String name) {
System.out.println("안녕하세요, 제이름은 " + name + "입니다.");
}
}
정답 : input에 문자열 이라 문자열 값을 넣어주고 문자열을 출력문에 배치하여 값을 출력메서드로 실행한다.
4. 다음 코드는 컴파일 에러가 발생합니다 . 그 이유는 무엇이며, 어떻게 해결해야 할까요?
package section02;
public class PRACTICE_03_05 {
public static void main(String[] args) {
Calc c = new Calc();
int result = c.plus(1,2);
System.out.println("반환받은 결과는 "+ result + "입니다.");
}
}
class Calc{
int plus(int num1, int num2) {
int res = num1 + num2;
return res;
}
System.out.println("계산 결과는 " + res + "입니다.");
}
}
정답 : Calc 클래스에서 맨마지막에 중괄호가 하나 더 생겨있어서 발생한 컴파일 에러이다 .
5. 다음과 같은 결과가 나오도록 코드를 수정해 보세요
package section02;
class Person{
private int age;
void setAge(int num) {
age = num;
}
int getAge() {
return age;
}
}
public class PRACTICE_03_05 {
public static void main(String[] args) {
Person lee = new Person();
lee.setAge(-10);
lee.setAge(30);
System.out.println("lee의 나이는 " + lee.getAge() + "세입니다.");
}
}
실행결과
잘못된 수를 입력하셨습니다. 1 이상의 값으로 설정하세요.
lee의 나이는 30세입니다.
package section02;
class Person{
private int age;
void setAge(int num) {
age = num;
if(num <= 0) {
System.out.println("잘못된 수를 입력하셨습니다. 1 이상의 값으로 설정하세요.");
}
}
int getAge() {
return age;
}
}
public class PRACTICE_03_05 {
public static void main(String[] args) {
Person lee = new Person();
lee.setAge(-10);
lee.setAge(30);
System.out.println("lee의 나이는 " + lee.getAge() + "세입니다.");
}
}
정답 : setAge 메서드에 조건문을 걸어주고 출력해준다. 입력값인 num 값이 <= 0 보다 작지않게 설정 !
생성자
- 다음빈칸에 알맞은 단어를 작성해 보세요
- 클래스의 이름과 동일하고 반환 타입이 없는 특별한 메서드를 ( 생성자 ) (이)라고 합니다.
2. 다음 문장이 맞으면 O표 틀리면 X표 하세요
- 생성자를 호출 할 때는 반드시 new 키워드를 사용해야 한다 ( o )
- 매개변수가 1개인 생성자를 기본 생성자라고 부른다 ( x )
- 생성자를 코드로 명시하지 않으면 기본 생성자는 생략되어 있습니다 ( o )
3. 다음 코드를 실행 했을때 콘솔창에 출력되는 결과는 무엇입니까?
package section02;
public class PRACTICE_03_05 {
public static void main(String[] args) {
Computer computer1 = new Computer("삼송");
computer1.logo();
}
}
class Computer {
String brand;
Computer(String name){
brand = name;
}
void logo() {
System.out.println("사랑해요" + brand);
}
}
정답 : 사랑해요삼송 . computer1 객체에 삼송이라는 문자열이 생성자 자리에 들어가서 brand 이름이 삼송이 된다. 이때 로고 라는 메서드에서는 사랑해요를 붙여서 출력하기 때문에 답은 사랑해요 삼송 !
4. 위 3번 코드에서 Computer 클래스의 brand 필드명을 name으로 변경하면 , 다음 빈칸에 들어갈 코드는 무엇인가요?
class Computer {
String brand;
Computer(String name){
?
}
class Computer {
String brand;
Computer(String name){
this.name = name;
}
정답 : this를 붙여서 객체 자기 자신 이라고 알려준다. 필드와 생성자 매개변수의 이름이 동일한 경우 구분이 어려울수 있으므로 this를 붙여서 구분해준다.
5. 다음 코드는 컴파일 에러가 발생합니다. 그 이유는 무엇이며 , 어떻게 해결해야 할까요?
package section11;
public class PRACTICE_03_05 {
public static void main(String[] args) {
Book b1 = new Book("어린왕자", 300);
Book b2 = new Book();
}
}
class Book{
String title;
int pages;
Book(String title, int pages){
this.title = title;
this.pages = pages;
}
}
package section11;
public class PRACTICE_03_05 {
public static void main(String[] args) {
Book b1 = new Book("어린왕자", 300);
Book b2 = new Book();
}
}
class Book{
String title;
int pages;
Book(){
this("어린왕자",300);
}
Book(String title, int pages){
this.title = title;
this.pages = pages;
}
}
정답 : 생성자가 ( 이름, 페이지수) 밖에 선언되지 않아서 컴파일 에러가 발생하였다. 생성자 () 안에 아무것도 안들어간 형태도 오버로딩으로 선언해준다.
'JAVA > [멘토씨리즈]' 카테고리의 다른 글
| [과제] 멘토씨리즈 문제풀이 3 (0) | 2024.04.09 |
|---|---|
| [멘토 씨리즈] 메서드 (1) | 2024.04.09 |
| [멘토 씨리즈] JAVA 다형성과 타입변환 (0) | 2024.04.09 |
| [멘토 씨리즈] JAVA 상속 (0) | 2024.04.09 |
| [멘토 씨리즈] JAVA 생성자 (0) | 2024.04.09 |