웹개발자의 봄, Spring 1주차_DAY4
JAVA 기초 문법
본격적인 스프링웹 프로젝트에 들어가기에 앞서, 스프링은 Java로 이루어져 있으므로, 기본적인 자바 문법에 대하여,
알아보도록 한다.
솔직히 지금와서 자료형과 반복문, 조건문, 연산자 등을 다시 정리하기 에는 무리일것.(그래도, 다시한번 다 들었다ㅠㅠ)
한참 파이썬만 만지작 거리느라, 조금 감이 떨어진 감이 없지않아 LIST와, 클래스, 메소드, 게터세터, 생성자의 개념만
간단히 정리해두려 한다.
List
개념
- 리스트는 배열과 비슷한 자바의 자료형으로 배열보다 편리한 기능을 많이 가지고 있다.
- 배열은 크기가 정해져 있다. 예를 들어 배열의 크기를 10개로 정했다면 10개 이상의 값을 담을 수는 없다.
- List 자료형에는 ArrayList, LinkedList 등의 List 인터페이스를 구현한 자료형이 있다.
- 여기서 말하는 List 자료형은 인터페이스인데 인터페이스에 대해서는 나중에 자세히 파보도록 한다.
선언
- 자바는 J2SE 5.0 버전 이후부터 ArrayList<String> pitches = new ArrayList<String>(); 이런식으로 객체를 포함하는 자료형도 어떤 객체를 포함하는지에 대해서 명확하게 표현하는것을 권고하고 있다. 이클립스에서 위와 같이 코딩하면 명확한 타입을 명시하라는 warning이 표시될 것이다.
package prac04_list;
import java.util.ArrayList;
import java.util.List;
public class Prac {
public static void main(String[] args) {
List<String> myList = new ArrayList<>();
}
add
- 선언한 리스트에 데이터를 추가하는 커맨드이다.
package prac04_list;
import java.util.ArrayList;
import java.util.List;
public class Prac {
public static void main(String[] args) {
List<String> myList = new ArrayList<>();
String course1 = "웹개발의 봄 spring";
String course2 = "프론트엔드의 꽃 react";
myList.add(course1);
myList.add(course2);
}
- myList라는 String데이터를 담을 수있는 리스트에 선언한 course1,2를 차례대로 추가해주었다
- myList(0) 에는 "웹개발의 봄 spring" / myList(1) 에는 "프론트엔드의 꽃 react" 가 차례로 자리잡게 된다.
- 만약 여기서 다시 0번에 무언가를 추가하고 싶다면, myList.add(0, "블라블라") 와 같이 입력한다.
그러면, 0번에 블라블라가 들어가게 되고 원래 자리하고 있던 데이터는 뒤로 한칸씩 밀리게 된다.
get
package prac04_list;
import java.util.ArrayList;
import java.util.List;
public class Prac {
public static void main(String[] args) {
List<String> myList = new ArrayList<>();
String course1 = "웹개발의 봄 spring";
String course2 = "프론트엔드의 꽃 react";
myList.add(course1);
myList.add(course2);
System.out.println(myList);
System.out.println(myList.get(1));
}
}
- 리스에 저장된 데이터를 가져올때 사용한다.
- 리스트명.get(index번호); 의 형식으로 사용된다.
size
- size 메소드는 ArrayList의 갯수를 리턴한다.
- 리스트명.size(); 형태로 사용한다.
contains
- contains 메소드는 리스트 안에 항목값이 있는지를 판별하여 그 결과를 boolean으로 리턴한다.
System.out.println(pitches.contains("142"));
- contains 라는 리스트에 142라는 문자열 값이 포함되어 있는지 묻는 코드이다.
remove
- remove 메소드에는 2개의 방식이 있다. (이름은 같지만 입력파라미터가 다르다
- remove(객체)
//remove(객체)의 경우는 리스트에서 객체에 해당되는 항목을 삭제하고 삭제한 결과를 리턴한다. System.out.println(pitches.remove("129")); //수행결과 true
- remove(인덱스)
//remove(인덱스)의 경우는 해당 인덱스의 항목을 삭제하고 삭제된 항목을 리턴한다. System.out.println(pitches.remove(0)); //수행결과 //pitches의 첫번째 항목은 "138"이므로 "138"이 삭제된 후 "138"을 리턴했다. 138
Getter&Setter, 생성자
Getter & Setter
- getter와 setter는 말 그대로 어떤 오브젝트 혹은 변수의 값을 가져오거나, 설정해주는 역할을 하는 메소드를 말한다.
- 이들은 다음과 같은 규칙을 가지고 있다.
- getter
- return type은 참조할 맴버변수의 자료형과 일치해야 한다.
- 이름 앞에 get 을 붙이고 뒤에는 리턴할 맴버변수의 이름 혹은 해당 변수를 직관적으로
표현하는 단어가 와야한다. - ex) int getLength();
- return type은 참조할 맴버변수의 자료형과 일치해야 한다.
- setter
- return type은 void 혹은 값의 설정 결과를 알려줄 수 있는 type이어야 한다.
- argument는 수정할 맴버변수와 같은 type이어야 한다.
- 이름 앞에 set을 붙이고 뒤에는 수정할 맴버변수의 이름 혹은 해당 변수를 직관적으로 표현하는 단어이어야 한다.
- ex) void setLength(int length);
- 클래스 멤버변수의 정보은닉
- 멤버변수가 Private으로 선언시
package prac08_GetterSetter;
public class Course {
// title, tutor, days 가 Course 라는 맥락 아래에서 의도가 분명히 드러나죠!
private String title;
private String tutor;
private int days;
// 여기가 게터 세터
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getTutor() {
return tutor;
}
public void setTutor(String tutor) {
this.tutor = tutor;
}
public int getDays() {
return days;
}
public void setDays(int days) {
this.days = days;
}
}
생성자(constructor)
- 아래의 두 코드를 비교해본다.
Course course2 = new Course(); course2.setTitle("프론트엔드의 꽃, React"); course2.setTutor("이용석짱"); System.out.println(course2.getTitle()); System.out.println(course2.getTutor()); System.out.println(); //생성자 사용 Course course3 = new Course("블라블라", "블라블라", 45); System.out.println(course3.getTitle()); System.out.println(course3.getTutor()); System.out.println(course3.getDays());
- 차이가 있다. 처벗째는 생성자를 사용하지 않은 코드이고, 두번째는 생성자 사용 코드이다.
- 생성자는 객체가 생성되는 시점에서 멤버변수에 특정 값을 할당한다.
- 생성자의 형태
public Course(){ // 이것이 디폴트 생성자 } // 이것이 만들어준 생성자 public Course(String title, String tutor, int days){ this.title = title; this.tutor = tutor; this.days = days; }
- 디폴트 생성자는 생성자 선언을 하지 않게 되면, 디폴트 생성자가 선언된것으로 시스템에서 간주하지만,
- 만약 특정한 생성자를 사용할 것 이라면, 디폴트 생성자를 선언 하여 주어야 한다.
마무리
1. 메소드와 클래스에 대해서는, 따로 이야기 하지 않았다. 이유는, 정리할 내용이 너무 많고, 게터세터와 생성자를 이해 하고 사용 한다는것은
메소드와 클래스에 대한 이해가 없이는, 무리가 있다고 판단했다.
'Web > Spring' 카테고리의 다른 글
Sparta Coding Club_웹개발자의 봄, Spring (JPA Start) (0) | 2021.09.04 |
---|---|
Sparta Coding Club_웹개발자의 봄, Spring (@RestController) (0) | 2021.09.01 |
Sparta Coding Club_웹개발자의 봄, Spring (웹의 기본개념) (0) | 2021.08.31 |
Sparta Coding Club_웹개발자의 봄, Spring (Gradle 시험 작동) (0) | 2021.08.31 |
Sparta Coding Club_웹개발자의 봄, Spring (개발환경구성) (0) | 2021.08.30 |