Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Seminar 6.

Similar presentations


Presentation on theme: "Java Seminar 6."— Presentation transcript:

1 Java Seminar 6

2 Exception

3 Exception package com.jiharu.main; public class Main {
public static void main(String[] args) { int num1 = 10; int num2 = 0; System.out.println(num1 / num2); } 컴퓨터에서 0으로 나누는 작업은 막혀져 있다. 자바에서 0으로 나누는 행위를 시도할 경우 (예외)가 발생하면서 프로세스가 종료된다. 이 때 종료되지 않게 하려면 어떻게 해야하는가.

4 Exception public class Main { public static void main(String[] args) {
int num1 = 10; int num2 = 0; if (num2 != 0) { System.out.println(num1 / num2); } else { System.out.println("나눌 수 없습니다."); } 전통 적인 방법은 예방이다. if문을 사용해서 나누지 못하는 케이스를 제거하자.

5 Exception package com.jiharu.main; public class Main {
public static void main(String[] args) { int num1 = 10; int num2 = 0; try { System.out.println(num1 / num2); } catch (ArithmeticException e) { System.out.println("나눌 수 없습니다."); } try-catch문은 try문안에서 일어나는 Exception(예외)를 감지한다. 해당하는 예외가 일어났을 경우 그 예외에 해당하는 문제를 해결할 수 있다.

6 Exception package com.jiharu.main; import java.util.Scanner;
public class Main { private static Scanner sc; public static void main(String[] args) { sc = new Scanner(System.in); try { System.out.print("첫번째 숫자 입력 : "); int num1 = sc.nextInt(); System.out.print("두번째 숫자 입력 : "); int num2 = sc.nextInt(); System.out.println(num1 / num2); } catch (ArithmeticException e) { System.out.println("나눌 수 없습니다."); } 다른 에러도 일어날 수 있다면 어떻게 해야할까?

7 만약 둘이상을 한꺼번에 처리하는 방법은 무엇일까?
Exception package com.jiharu.main; import java.util.InputMismatchException; import java.util.Scanner; public class Main { private static Scanner sc; public static void main(String[] args) { sc = new Scanner(System.in); try { System.out.print("첫번째 숫자 입력 : "); int num1 = sc.nextInt(); System.out.print("두번째 숫자 입력 : "); int num2 = sc.nextInt(); System.out.println(num1 / num2); } catch (ArithmeticException e) { System.out.println("나눌 수 없습니다."); } catch (InputMismatchException e) { System.out.println("타입 매칭이 되지 않습니다."); } 만약 둘이상을 한꺼번에 처리하는 방법은 무엇일까?

8 Exception Exception – 최상위 클래스 Exception사용 package com.jiharu.main;
import java.util.Scanner; public class Main { private static Scanner sc; public static void main(String[] args) { sc = new Scanner(System.in); try { System.out.print("첫번째 숫자 입력 : "); int num1 = sc.nextInt(); System.out.print("두번째 숫자 입력 : "); int num2 = sc.nextInt(); System.out.println(num1 / num2); } catch (Exception e) { System.out.println("타입 매칭이 되지 않습니다."); }

9 안드로이드 프로그래밍

10 안드로이드 프로그래밍

11 안드로이드 프로그래밍 프로젝트 만들기 새로 만들기 원래 작업 공간

12 안드로이드 프로그래밍 프로젝트 만들기

13 안드로이드 프로그래밍 프로젝트 만들기

14 안드로이드 프로그래밍 프로젝트 만들기

15 안드로이드 프로그래밍 프로젝트 만들기

16 안드로이드 프로그래밍 프로젝트 만들기 왼쪽 목록창에서 Project를 눌러주면 목록이 보인다. 그러면 app과 Gradle Scripts가 보인다.

17 안드로이드 프로그래밍 프로젝트 만들기 총 4개의 구역으로 나뉜다고 생각하자.
manifests – 안드로이드의 설정을 지정하는 파일 java – 자바 소스가 들어간다. 로직을 담당. res – xml 설정 파일이 들어간다. view를 담당. gradle – 총 빌드 설정이 들어 가는 파일.

18 안드로이드 프로그래밍 프로젝트 만들기 Activity(화면)는 안드로이드에 보여줄 메인 화면을 의미한다. Activity는 로직 부분인 java 소스와 view 부분인 xml 소스로 나눠져 있으며 이 둘을 연결해서 사용한다. 관습적으로 제일 메인 화면은 MainActivity로 java파일의 이름을 짓고 activity_main으로 xml파일의 이름을 짓는다. MainActivity.java – 메인 액티비티 로직 activity_main.xml - 메인 엑티비티 뷰

19 안드로이드 프로그래밍 activity_main.xml

20 안드로이드 프로그래밍 가상디바이스에서 어플리케이션 실행시키기

21 안드로이드 프로그래밍 가상디바이스에서 어플리케이션 실행시키기 현재 내가 만들어 놓은 가상 디바이스

22 옆에 핸드폰 기종을 보지 말고 디스플레이 크기만 맞추면됨
안드로이드 프로그래밍 가상디바이스에서 어플리케이션 실행시키기 옆에 핸드폰 기종을 보지 말고 디스플레이 크기만 맞추면됨

23 안드로이드 프로그래밍 가상디바이스에서 어플리케이션 실행시키기 안드로이드 운영체제 버전을 선택하자

24 안드로이드 프로그래밍 가상디바이스에서 어플리케이션 실행시키기
찾는 버전이 없다면 x86 Images나 Other Images를 선택해서 찾아보자.

25 안드로이드 프로그래밍 가상디바이스에서 어플리케이션 실행시키기 운영 체제의 선택기준
1. 최신 기술을 적용시키고 싶다 : 최신버전을 선택한다. 2. 많은 사람들이 무리없이 사용하게 하고싶다 : 사람들이 많이 쓰는 버전을 고른다.(위의 예로는 Lollipop이 적당.) 3. 내가 쓰고 싶다 : 내가 사용하는 버전을 고른다. 4.적당히 많이 쓰면서 적당히 기능 있는 버전을 사용하고 싶다 : 절반 가량의 사용률이상을 타겟으로 잡을 수 있는 버전을 고른다(위의 예로는 Mashmallow) 버전 접유율 확인 가능

26 안드로이드 프로그래밍 가상디바이스에서 어플리케이션 실행시키기

27 안드로이드 프로그래밍 가상디바이스에서 어플리케이션 실행시키기 만든 가상 디바이스를 선택한다.

28 안드로이드 프로그래밍 가상디바이스에서 어플리케이션 실행시키기

29 안드로이드 프로그래밍 실제디바이스에서 어플리케이션 실행시키기 실제 디바이스를 연결한다.

30 안드로이드 프로그래밍 실제디바이스에서 어플리케이션 실행시키기 실제 디바이스가 목록에 뜬다.

31 안드로이드 프로그래밍 실제디바이스에서 어플리케이션 실행시키기

32 안드로이드 프로그래밍 실제디바이스에서 어플리케이션 실행시키기

33 안드로이드 프로그래밍 실제디바이스에서 어플리케이션 실행시키기 디바이스 정보를 눌러준다.

34 안드로이드 프로그래밍 실제디바이스에서 어플리케이션 실행시키기
빌드번호를 게임하듯 마구 연타해주면 밑에 텍스트가 뜨면서 개발자 모드가 활성화 된다.

35 안드로이드 프로그래밍 실제디바이스에서 어플리케이션 실행시키기 이제 개발자 옵션으라는 목록이 추가로 생긴다.

36 안드로이드 프로그래밍 실제디바이스에서 어플리케이션 실행시키기

37 안드로이드 프로그래밍 실제디바이스에서 어플리케이션 실행시키기 이러한 문제가 생긴다면 케이블을 뺏다가 다시 끼우면 해결된다.

38 안드로이드 프로그래밍 <?xml version="1.0" encoding="utf-8"?> <!--activity_main.xml--> <LinearLayout xmlns:android=" xmlns:app=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.jiharu.testapp.MainActivity"> </LinearLayout> 레이아웃을 Linear로 만들어준다.

39 안드로이드 프로그래밍 <?xml version="1.0" encoding="utf-8"?> <!--activity_main.xml--> <LinearLayout xmlns:android=" xmlns:app=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.jiharu.testapp.MainActivity"> </LinearLayout> 레이아웃을 Linear로 만들어준다.

40 안드로이드 프로그래밍 2개의 plaintext와 1개의 button, 1개의 textview를 끌어서 만들자. 크기를 가로로는 화면크기로, 세로로는 가능한한 가장 작은 크기로 맞춰라. 마우스로 드래그 하면 된다.

41 그 중에서 text값을 수정해서 다음과 같이 보이게하자.
안드로이드 프로그래밍 우측에 보면 속성값들이 있다. 그 중에서 text값을 수정해서 다음과 같이 보이게하자.

42 안드로이드 프로그래밍 버튼은 계산을, 텍스트뷰는 결과:가 출력되게 하자.

43 안드로이드 프로그래밍 다시 text모드로 보면 위와 같이 나온다.
<?xml version="1.0" encoding="utf-8"?> <!--activity_main.xml--> <LinearLayout xmlns:android=" xmlns:app=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.jiharu.testapp.MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="계산" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="결과:" /> </LinearLayout> 다시 text모드로 보면 위와 같이 나온다.

44 onCreate안에서 변수를 사용할 경우 final을 붙혀준다.
안드로이드 프로그래밍 //MainActivity.java package com.jiharu.testapp; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Button btn = (Button) findViewById(R.id.button); final TextView tv = (TextView) findViewById(R.id.textView); final EditText et1 = (EditText) findViewById(R.id.editText); final EditText et2 = (EditText) findViewById(R.id.editText2); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { tv.setText("결과:"+(Integer.parseInt(et1.getText().toString()) Integer.parseInt(et2.getText().toString()))); } }); } } onCreate안에서 변수를 사용할 경우 final을 붙혀준다.

45 외부의 필드로 선언할 경우 final선언을 하지 않는다.
안드로이드 프로그래밍 //MainActivity.java package com.jiharu.testapp; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private Button btn = (Button) findViewById(R.id.button); private TextView tv = (TextView) findViewById(R.id.textView); private EditText et1 = (EditText) findViewById(R.id.editText); private EditText et2 = (EditText) findViewById(R.id.editText2); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { tv.setText("결과:"+(Integer.parseInt(et1.getText().toString()) Integer.parseInt(et2.getText().toString()))); } }); } } 외부의 필드로 선언할 경우 final선언을 하지 않는다.


Download ppt "Java Seminar 6."

Similar presentations


Ads by Google