Stack Building
[android] 안드로이드를 위한 자바 문법 본문
자바 개요
❖ 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을 사용하면 “연월일”이나 “시분초” 같은 표현이 가능
'앱' 카테고리의 다른 글
[경고] shouldOverrideUrlLoading(WebView,String) in WebViewClient has been deprecated (0) | 2019.05.31 |
---|---|
[오류] Execution failed for task 'app:mergeDebugResources' Crunching Cruncher (0) | 2019.05.18 |
[android] 처음 만드는 안드로이드 애플리케이션 (0) | 2019.04.19 |
[android] 안드로이드 개요와 개발 환경 (0) | 2019.04.19 |
[오류] LinearLayout 요소 안보임 (0) | 2019.03.19 |