자바는 웹 프로그램을 개발하는데 특화된 컴파일 언어이자 벡엔드 개발 전문 언어임. 플랫폼에 독립적이라서 어떤 운영체제(OS)에서도 실행이 가능하며 가상머신을 통해 실행됨
intellij
java
현실 세계는 모두 객체로 표현할 수 있고, 특징(속성) 동작(함수)를 포함한 여러 객체를 자동차 부품처럼 조립하여 코딩하는 방법
속성(멤버변수, 필드), 생성자함수, 함수(멤버 메소드)
속성 : 객체의 고유데이터를 저장
생성자함수 : 객체의 속성을 사전 정의한 값으로 초기화함
함수 : 객체의 동작부분(기능 또는 동작)
객체의 특징을 나타내는 것으로 속성이라고 함
생성자는 new 연산자로 호출되는 유사 함수임. 객체 생성 시 초기화를 담당하며 모든 클래스에 반드시 1개는 존재해야 함, 클래스에 없으면 자동 추가됨
객체의 동작(기능)에 해당하며 실행코드가 중괄호{} 블록에 있으며, 호출되면 중괄호 블록의 모든 코드들이 일괄적으로 실행됨
접근제어자 리턴타입 함수명(매개변수타입 매개변수명1...매개변수타입 매개변수명n){실행문}
ex) public void sample(int a, String b, double c) {}
함수의 기능을 잘 표현한 단어로 정의, 카멜표기법 사용
카멜표기법(낙타표기법), 첫글자소문자 , 단어와 단어 사이는 대문자 사용
함수가 실행된 이후 결과값을 {} 밖으로 전달하고 싶을 때 사용
return 변수; // 변수 {} 밖으로 전달됨
객체에 정의된 속성 및 static 이 붙은 속성
객체를 생성하지 않고 사용가능, 변수(함수)앞에 static 키워드 붙임
사용법 : 클래스명.변수명, 클래스명.함수명()
final : 상수 만드는 키워드 , 변수의 앞에 붙이면 상수가 됨, 초기값 바로 지정해야함
사용법 : final 변수명 = 초기값
프로젝트 개발 시 클래스 개수가 수십 개, 수백 개로 늘어나면 관리가 어려움 발생. 체계적인 관리를 위해 패키지를 사용함(일종의 폴더와 유사)
해당 클래스가 어떤 패키지에 속하는 지 선언
package 상위패키지.하위패키지;
클래스와 인터페이스를 다른 패키지에서 사용하지 못하도록 막을 필요가 있음.
객체 생성을 막거나, 속성이나 함수를 사용 못하게 막을 필요가 있을 때 사용함
public : 공용, 모든 객체가 사용가능
protected : 같은 패키지에서 자식 클래스가 아닌 클래스는 사용할 수 없음 (상속 관계)
default : 같은 패키지안에 있는 자바 클래스는 서로 사용 가능
private : 같은 패키지 뿐만 아니라 모든 외부 클래스는 사용 못함(오직 자신만 사용가능)
속성은 외부에서 접근할 수 없도록 막고 함수는 공개해서 외부에서 함수를 통한 속성에 접근하도록 유도
1) Getter : 속성의 값을 외부로 리턴해주는 함수
명명법 : get속성명()
ex) getId(), getName(){}
2) Setter : 매개변수로 유효한 값만 받아 속성의 값을 변경하는 함수
명명법 : set속성명(매개변수타입 매개변수명){}
ex) setId(String id), setName(String name)