트랜드에 맞춰 Kotlin으로 개발언어를 바꿨지만 아직까지 유지보수를 위해 회사에서 Java를 많이 사용하더라
그래서 기초를 한번 다시 정리하기로 했다
필요하다고 생각되거나 놓친게 있으면 그때그때 추가할 생각
변수 선언
type a = something(type);
type -> 자료형
a -> 변수명
something -> 변수를 초기화할 값
배열
int[] array1 = {1, 2, 3, 4, 5}; // [1, 2, 3, 4, 5]
int[] array2 = new int[5];
array2[0] = 1; array2[1] = 2; array2[2] = 3; array2[3] = 4; array2[4] = 5; // [1, 2, 3, 4, 5]
array1 -> 배열의 선언과 동시에 초기화
array2 -> 배열의 크기를 정하고 선언한 후 값을 대입
방식은 다르지만 결과적으로 같은 배열이 만들어짐
리스트
ArrayList<String> fruit = new ArrayList<String>();
fruit.add(0, "apple");
fruit.add(1, "orange");
System.out.println("리스트의 크기는 %d", fruit.size());
if(fruit.contains("apple")) {
System.out.println("리스트에 apple이 존재합니다");
}
else {
System.out.println("리스트에 apple은 없습니다");
}
System.out.println(fruit.remove(1)); // true 출력
System.out.println(fruit.remove("apple")); // apple 출력
ArrayList<String> -> 리스트 생성
*List 인터페이스 : ArrayList 는 List Interface 를 기반으로 한 List 중 하나이다. LinkedList, Vector 등의 List도 존재
fruit.add(0, "apple"), fruit.add(1, "orange") -> 앞의 숫자는 값을 넣을 위치, 뒤의 문자열은 넣을 값
fruit.size() -> 리스트의 크기를 반환
fruit.contains("apple") -> 리스트가 "apple" 이라는 값을 가지고 있는지 boolean으로 반환
가지고 있다면 true 없다면 false
fruit.remove(1) -> 리스트의 1의 위치에 있는 값을 삭제, 삭제했다면 true 실패했다면 false 를 반환
fruit.remove("apple") -> 리스트에서 "apple" 을 찾아서 삭제, 삭제했다면 apple 을 반환
출력
System.out.println("%d는 정수 %f는 실수 %c는 문자 %s는 문자열", 1, 1.0, '1', "1");
System.out.println(printf) -> 출력 함수
%d, %f, %c, %s -> 서식문자
클래스
public class Person {
private String name;
public Person(String name) {
this.name = n;
}
public String GetName() {
return name;
}
}
public class Person -> Person 클래스 정의
private String name -> Person 의 객체 변수, 인스턴스, 속성
public Person(String name) -> Person 의 생성자
public String GetName() -> Person 의 메서드
상속
public class Student extends Person {
String school;
public Student(String name) {
this.name = name;
this.school = "none"
}
public Student(String name, String school) {
this.name = name;
this.school = school;
}
public String GetName() {
return "My name is " + this.name;
}
}
public class Student extends Person -> Person 클래스를 상속받아 Student 클래스 정의
public Student(String name), public Student(String name, String school)
-> 입력값의 차이로 두개의 생성자가 존재 -> 생성자 오버로딩(Overloading)
*메서드 오버로딩(Overloading)이란? : 이름은 같지만 입력값의 자료형과 그 수가 다른 메서드를 여러개 가지는 기술
public String GetName() -> 부모 클래스 Person 의 GetName 메서드를 재정의(Overwriting)
*메서드 오버라이딩(Overwriting)이란? : 자식 클래스가 부모 클래스의 메서드를 재정의하는 기술
객체 생성
public static void main(String[] args) {
Person p1 = new Person("Jim");
Student s1 = new Student("Carry", "Orange High School");
System.out.println("%s", p1.GetName()); // 출력 -> Jim
System.out.println("%s", s1.GetName()); // 출력 -> My name is Carry
}
public static void main(String[] args) -> 메인 함수
new -> new 를 통해 메모리 할당
*자바 메모리 할당 : 객체 생성 시 new 를 통해 참조형을 위한 힙(Heap) 영역에 메모리를 할당합니다
Person, Student -> 생성자 호출
p1.GetName(), s1.GetName() -> 객체의 메서드 호출
정리에 참조한 사이트 목록
05-2 메소드 (Method) - 점프 투 자바 (wikidocs.net)
오버로딩과 오버라이딩 차이와 예제 (tistory.com)
JAVA - new 생성자란? / 인스턴스 생성 (tistory.com)
'그 외 기술' 카테고리의 다른 글
Naver Cloud Platform 서버 세팅하기 (0) | 2021.12.07 |
---|---|
rest api 관련 읽어볼 사이트 (0) | 2021.07.29 |
동기(Synchronous)와 비동기(Asynchronous) (0) | 2021.07.23 |
오늘 알게된 내게 부족한 기초 지식 (0) | 2021.07.22 |
RESTful API (0) | 2021.07.22 |