내가 보려고 쓰는 Java 기초 문법 정리
트랜드에 맞춰 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)
위키독스
온라인 책을 제작 공유하는 플랫폼 서비스
wikidocs.net
오버로딩과 오버라이딩 차이와 예제 (tistory.com)
오버로딩과 오버라이딩 차이와 예제
자바에서 다형성을 지원하는 방법으로 메서드 오버로딩과 오버라이딩이 있습니다. 오버로딩(Overloading) : 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술
private.tistory.com
JAVA - new 생성자란? / 인스턴스 생성 (tistory.com)
JAVA - new 생성자란? / 인스턴스 생성
자바에서 사용하는 NEW를 알아봅니다. 안녕하세요. 고코더 입니다. 자바 언어의 특징중 new를 사용해 메모리를 할당하는 기능이 있습니다. 힙(Heap) 영역에 저장할 공간을 할당해서 참조 값을 객체
gocoder.tistory.com