그 외 기술

내가 보려고 쓰는 Java 기초 문법 정리

E.I.T.U 2021. 7. 25. 22:29

트랜드에 맞춰 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