Stack Building

[android] 안드로이드를 위한 자바 문법 본문

[android] 안드로이드를 위한 자바 문법

S00ahKim 2019. 4. 19. 13:12

자바 개요

❖ Java의 역사

✓ 1991년 선마이크로시스템스(오라클에 인수되었음)에 제임스 고슬링이 C 언어를 모델로 연구 시작

✓ 1995년 JDK(Java Development Kit) 1.0 발표

✓ 1997년 JDK 1.1이 발표되면서 완전한 프로그래밍 언어의 모습을 갖춤

 

❖ Java의 특징

✓ 구문이 간결함

✓ 명료한 객체지향 언어

✓ 이식성이 높고, 기계에 중립적

✓ 분산 처리 지원

✓ 멀티스레드(Multi-thread) 언어

 

❖ Java 프로그램 작성법

✓ 메모장에서 Java 코드를 작성한 후에 *.java로 저장

✓ javac.exe를 사용해서 컴파일하면 *.class 파일이 생성

✓ java.exe를 사용해서 컴파일된 *.class 파일을 실행

→ 개발자들은 대부분 이클립스 환경에서 Java를 개발

            main 함수가 있는 class 파일을 run 하면 된다.

            ㄴ public static void main(String[] args)

 

 

자바 기본 문법

1. 변수와 데이터 형식

변수는 int i = 10; 과 같이 데이터형, 변수명, =, 할당값; 으로 선언된다.

2. 조건문

(1) if, else

(2) switch()~case

 

3. 배열

- 여러 데이터를 한 변수에 저장하는 데 사용됨.

- 배열의 index는 0부터 시작함.

- 배열을 선언하며 바로 값을 대입할 수 있음. ex. int arr[] = [1,2,3];

 

4. 반복문

(1) for

(2) while

5. 메소드, 전역변수, 지역변수

• 전역변수(Global variable) : 모든 메소드에서 사용 (메소드 밖에서 선언)

• 지역변수(Local variable) : 메소드 내부에서만 사용

두 변수의 이름이 같다고 하더라도, 지역변수는 메소드 내부에서만 유효함. 자신이 속하지 않은 메소드에서 호출하면 전역변수가 호출된다.

 

6. 예외 처리

try catch

 

7. 연산자

 

 

클래스와 인스턴스

❖ 클래스(class)는 변수(필드)와 메소드로 구성

- 생성자: 클래스 안에 리턴 타입이 없는 클래스 이름과 같은 메소드.

            new Car("빨강", 0); 처럼 생성하면서 인자를 넘겨줄 수 있다.

 

❖ 메소드 오버로딩(Overloading)

클래스 내에서 메소드의 이름이 같아도 파라미터의 개수나 데이터형만 다르면 여러 개의 선언이 가능

 

❖ 정적 필드, 정적 메소드, 상수 필드

• 정적 필드(static field) : 클래스 자체에서 사용되는 변수

• 정적 메소드(static method) : 메소드 앞에 static 붙여 사용 인스턴스 없이 “클래스명.메소드명()”으로 호출해서 사용 정적메소드에서는 정적변수만 접근 가능

• 상수 필드 : 정적 필드에 초기값을 입력하고 final을 앞에 붙임

 

 

클래스의 상속

(1) 상속(inheritance)

✓ 기존 클래스를 그대로 물려받으면서 필요한 필드나 메소드를 추가로 정의

✓ extends 문법 사용

 

(2) 추상 클래스와 추상 메소드

❖ 추상(abstract) 클래스

• 인스턴스화를 금지하는 클래스

• 메소드 앞에 abstract 써서 사용

 

❖ 추상 메소드

• 메소드 본체가 없는 메소드

• 메소드 앞에 abstract 써서 사용

• 추상 메소드를 포함하는 클래스는 추상 클래스로 지정해야 함

 

(3) 다형성(polymorphism)

✓ 자신의 서브(자식) 클래스에서 생성한 인스턴스도 자신(부모)의 클래스 변수에 대입할 수 있는 것

 

(4) 인터페이스(Interface)

✓ class 키워드 대신 interface 키워드를 사용해서 정의

✓ 내부에는 추상 메소드를 선언

✓ 클래스에서 인터페이스를 받아서 완성할 때 implements 키워드 사용

✓ Java는 다중 상속을 지원하지 않지만, 인터페이스를 사용해서 다중 상속과 비슷하게 작성할 수 있음

 

(5) 익명 내부 클래스(Anonymous inner class)

✓ 한 번만 사용하고 버려지는 클래스에 사용

 

 

추가로 알아둘 자바 문법

(1) 패키지(Package)

✓ package 패키지명;

✓ 클래스와 인터페이스가 많아지면 관리가 어려워 패키지 단위로 묶어서 관리

✓ [New]-[Package]를 선택

✓ 사용자가 생성한 클래스가 포함될 패키지는 *.java 파일 맨 첫 행에 지정

 

(2) 제네릭스(Generics)

✓ 데이터 형식의 안전성을 보장하는 데 사용

✓ < String >뿐 아니라 < Integer >, < Double >, 사용자가 필요에 따라 정의하는 클래스형으로 사용

 

(3) 데이터 변환

✓ 데이터형 변환을 위해 캐스팅 연산자 대신 Java에서 제공하는 클래스의 정적 메소드 사용

 

(4) 문자열 비교

✓ 문자열을 비교하려면 String 클래스의 equals( ) 메소드를 사용

 

(5) 날짜 형식

✓ 날짜를 표현하기 위해 DateFormat 클래스를 사용

✓ SimpleDateFormat을 사용하면 “연월일”이나 “시분초” 같은 표현이 가능

Comments