메소드 (Method) - 함수(function)와 비슷한 개념
| 메소드의 구조
public (반환형) 메소드명(파라미터) {
// 명령 내용
return (반환값)
}
| 메소드의 특징
- class 안에만 작성을 해야한다.
- public 은 반드시 써줘야 한다.
- main 함수에서 실행을 하려면 static을 반드시 써줘야 한다.
- 반환값, 즉 return이 있다면 void 대신 method 명 앞에 return할 값의 자료형(Data type)을 써주고 return이 없다면 반환형 자리에 void를 써준다. (ex. String, int..)
- 데이터 타입과 void는 return 값의 유무에 따라 둘 중 하나만 쓴다고 이해하면 될 것 같다. - 파라미터(입력값)는 있을 때도 있고 없을 때도 있다.
| main 에서 method를 실행할 때
- 반환값(return)이 없다면 함수를 호출해주기만 하면 된다.
- 반환값(return)이 있다면 함수를 받을 변수를 지정해주고 System.out.println( ); 에 변수를 받아 보여준다.
// 파라미터 X, 반환값 X
public void simplePrint() {
System.out.println("파라미터도 없고, 반환값도 없어요!");
}
// 파라미터 O, 반환값 X
public void simpleSum(int num1, int num2) {
System.out.println("num1 :" + num1 + ", num2: " + num2);
}
// 파라미터 X, 반환값 O
public int simpleReturn() {
return 3;
}
// 파라미터 O, 반환값 O
public int sum(int num1, int num2) {
return num1 + num2;
}
| List (List는 컬렉션 클래스)_종류 중 일부
List<String> aa = new ArrayList<>( );
👉 String 타입의 aa라는 리스트 생성
- List는 요소의 저장 순서가 유지된다.
- 같은 요소의 중복 저장을 허용한다.
List<Integer> bb = new ArrayList<>( );
👉 Int 타입의 bb라는 리스트 생성 (*Int와 Integer는 차이가 있음)
| List 메소드
- .add(String, Int) : 해당 리스트에 전달된 요소를 추가한다.
.- get (Int index) : 해당 리스트의 특정 위치에 존재하는 요소를 반환한다.
- .remove(int Index) : 해당 리스트의 특정 위치에 존재하는 요소를 제거한다.
- .size( ) : 해당 리스트의 요소의 총 개수를 반환함. (List에서는 .length( ) 대신 .size( ) 사용)
- Object[] toArray( ) : 해당 리스트의 모든 요소를 Object 타입의 배열로 반환한다.
1. Object[] 배열에 toArray()로 담는 경우
👉 Object[] obj = (Object[]) list.toArray();
에러없이 잘 받아진다. 형변환은 생략해도된다.
2. String[] 배열에 toArray()로 담는 경우
=> String[] str = (String[]) list.toArray();
실행시 에러가난다. toArray()는 Object[]형태로 반환되고 String[]으로 형변환이 불가하기 때문이다.
따라서 String형으로 받고자하는 경우는 밑과 같은 방식으로해야한다.
String[] str = new String[list.size()];
str = (String[]) list.toArray(str);
클래스 class
: 정보를 묶는 것, 메소드와 변수를 담고 있다.
생성자
public class Course {
public String title;
public String tutor;
public int days;
// 기본 생성자 : 파라미터(입력값)가 없는 생성자
public Course() {
}
// 생성자
public Course(String title, String tutor, int days) {
// this : 클래스의 변수를 가리킴
this.title = title;
this.tutor = tutor;
this.days = days;
}
}
생성자를 하나라도 넣게 되면 기본 생성자는 없는 것으로 간주된다. + 기본 생성자를 필요로 한다면 추가로 넣어주면 된다.
Rest
: 서버의 응답이 JSON 형식임을 나타낸다.
HTML, CSS 등을 주고받을 때는 Rest를 붙이지 않는다.
Controller
: 자동응답기, 클라이언트의 요청(Request)을 전달받는 코드
👉 JSON 만을 돌려주는 것은 RestController라고 부른다.
1주차 회고록
지난 알고리즘 문제를 풀었을 때 자바 강의를 조금 들어서 아예 처음 듣는 내용은 몇 개 없었다. 그래도 아직 직접 적용하기에는 어려운 내용도 많은 것 같다. Private과 Public의 차이를 배웠다. 정보를 함부로 수정할 수 없도록 하기 위해 Private을 사용하고, 그 정보를 저장하고 가져올 때도 단순히 쓸 수 있는 것이 아니라 Setter와 Getter를 이용해 코드를 작성해야 한다.
Setter는 정보를 보내줄 떄 사용하고 Getter는 반대로 정보를 가져올 때 사용한다. 아래는 그 사용의 예시이다.
//Setter
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
//Getter
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public String getNickname() {
return this.nickname;
}
또, Controller의 개념도 배워서 입력한 정보를 서버에서 Json 형태로 받아오는 작업도 해보았다. 수업 시간에 배운 코드를 따라서 작업을 해보았는데 오류가 나지 않은 채 서버에서 열리지 않는 문제가 발생했다. 정확한 원인은 모르겠지만 Setting에서 Gradle의 Build and using과 Run tests using을 Intellij IDEA로 바꿔주니 정상적으로 작동했다.
새 프로젝트를 만들 때마다 설정에서 auto import를 포함해 다른 세팅을 모두 마친 환경에서 작업해야겠다고 생각했다.
참고자료
'스파르타코딩클럽 > 항해99' 카테고리의 다른 글
항해99 6기 DAY 13 TIL _ 22.03.19 (0) | 2022.03.20 |
---|---|
항해99 6기 DAY 12 TIL _ 22.03.18 (0) | 2022.03.19 |
항해99 6기 DAY 11 TIL _ 22.03.17 (0) | 2022.03.17 |
항해99 6기 DAY 10 TIL _ 22.03.16 (0) | 2022.03.17 |
항해99 6기 DAY 9 TIL _ 22.03.15 (0) | 2022.03.16 |