목록Backend/Java (34)
도도한 개발자
public class Parent { public Parent() { System.out.println("Parent Constructor"); } public void printName() { System.out.println("Parent printName()"); } } Parent 클래스에는 생성자와 printName()이라는 메소드가 있다. public class Child extends Parent { public Child() { System.out.println("Child Constructor"); } } Child 클래스에는 그냥 생성자만 있다. 그런데 클래스를 선언문을 보면 extends Parent가 뒤에 붙을 걸 볼 수 있다. extends라는 것은 '확장하다'로, 자바의 예약어..
* 패키지 자바 애플리케이션을 개발할 때 클래스들을 분류하지 않으면 이름이 중복되거나, 어떤 클래스가 어떤 일을 하는지 혼동되는 일이 발생한다. 그래서 '패키지'라는 것이 존재한다. ** 패키지 선언을 할 때 꼭 지켜야 하는 제약사항이 있다. - 소스의 가장 첫 줄에 있어야 한다. package 선언 위에 주석이나 공백이 있는 것은 상관없으나 다른 자바 문장이 하나라도 있으면 컴파일이 제대로 되지 않는다. - 패키지 선언은 소스 하나에 하나만 있어야 한다. 한 소스 파일이 두개의 폴더에 한번에 존재할 수 없기 때문이다. - 패키지 이름과 위한 폴더 이름이 같아야 한다. 자바 파일을 만들어 놓은 폴더의 이름과 여기에 선언된 패키지 이름이 다를 경우, javac로 컴파일하려고 하면 파일을 찾지 못하여 컴파일..
자바의 타입은 기본 자료형과 참조 자료형이 있다. 기본 자료형(byte, short, int, long, char, float, double, boolean) 8개를 제외한 나머지 타입은 모두 참조 자료형이다. 쉽게 구분하면, 기본 자료형과 참조 자료형의 가장 큰 차이는 new를 사용해서 객체를 생성하는지 여부로 알 수 있다. 단, String의 경우 참조 자료형이지만 new 없이도 객체를 생성할 수 있다. 참조 자료형은 new를 사용하여 객체를 사용하는데, new 뒤에 나오는 것이 바로 생성자이다. 클래스를 만들면 보통 인스턴스 변수와 클래스 변수를 만들고, 생성자와 메소드를 만들어야 한다. 그럼 생성자와 메소드에 대해 알아보자. * 기본 생성자 자바는 생성자를 만들지 않아도 자동으로 기본 생성자가 만..
배열은 한 가지 타입에 대해서, 하나의 변수에 여러 개의 데이터를 저장할 수 있다. 자바에서 기본 자료형의 배열은 다음과 같이 선언할 수 있다. int [] array ; int array []; 이렇게 대괄호를 열고 닫음으로써 해당 변수가 배열이라는 것을 정의할 수 있다. 주의할 점은, 배열 변수를 정의할 때 대괄호 안에는 아무것도 써주면 안 된다. 이렇게 선언한 배열엔 아직 몇 개의 데이터가 들어가는 지 알 수 없기 때문에 다음과 같이 초기화를 해줘야 한다. int [] array = new int[7]; 배열도 참조 자료형이기 때문에 신규로 생성시 new를 붙여햐야 한다. 선언을 먼저 한 후 초기화를 하고 싶은 경우 int [] array; array = new int[7]; 이렇게 선언해도 좋다...
프로그램의 코드를 작성하는 것은 전부 조건을 따지는 작업을 반복적으로 수행하는 것이다. 먼저 가장 많이 사용하는 if가 있는데, 자바에서 if라는 것을 사용해 조건을 따질 때 공식이 있다. if if(boolean값) 처리문장; if 다음에는 반드시 소괄호를 열고 닫아야 하며 이 소괄호 안에는 boolean 형태의 결과가 있어야 한다. 그 안의 결과가 true일 때, 처리하는 "처리문장"과 세미콜론이 온다. public class ControlIf { // main()메소드 생략 public void ifStatement() { if(true) if(true) System.out.println("It's true"); if(true) System.out.println("It's also true"); i..
* 복합 대입 연산자 (Compound Assignment Operator) += : 기존 값에 우측 항의 값을 더함 -= : 기존 값에 우측 항의 값을 뺌 *= : 기존 값에 우측 항의 값을 곱함 /= : 기존 값에 우측 항의 값을 나눔 %= : 기존 값에 우측 항의 값으로 나눈 나머지 public class OperatorCompound { int intValue = 10; public static void main(String[] args) { OperatorCompound opr = new OperatorCompound(); opr.compound(); } public void compound() { System.out.println(intValue += 5);// 15 System.out.pri..
어떤 프로그래밍 언어를 사용하던 내용을 담아 둘 그릇이 필요하다. 그것을 우리는 "변수(Variable)"라고 부르기로 했고 여기에는 항상 이름을 정해줘야 한다. * 자바에는 네 가지 변수가 있다. - 지역변수 (local variables) : 중괄호 내에서 선언된 변수 - 매개변수 (parameters) : 메소드에 넘겨주는 변수 - 인스턴스 변수 (instance variables) : 메소드 밖에, 클래스 안에 선언된 변수. 앞에는 static이라는 예약어가 없어야 한다. - 클래스 변수 (class variables) : 인스턴스 변수처럼 메소드 밖, 클레스 안에 선언된 변수 중에 타입 선언 앞에 static이라는 예약어가 있는 변수. 코드로 예를 들어보면 public class Variable..
* 클래스는 상태(State)와 행위(Behavior)가 있어야 한다. 예를들어 핸드폰의 상태엔 - 밝기가 최대인 상태 - 배터리가 10% 남아있는 상태 - 폰트가 궁서체인 상태 등이 있고 핸드폰의 행위엔 - 밝기를 낮추는 행위 - 배터리를 충전하는 행위 - 폰트를 변경하는 행위 등이 있다. 이 내용을 자바로 표현해보자. public class Phone { public Phone() { } } Phone 클래스 선언문 아래 메소드같이 생긴 것을 생성자(Constructor)이라고 부른다. Phone 클래스 객체를 생성할 때 필요한데, 이 클래스의 밝기 상태, 배터리 상태, 폰트 크기가 최소인 상태 등을 다음과 같은 변수로 나타낼 수 있다. public class Phone { public Phone()..