달력

2

« 2020/2 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

   

    

자바의 자료형

어떤 프로그래밍 언어든 "그 언어의 자료형을 알고 이해할 수 있다면 이미 그 언어의 절반을 터득한 것이나 다름없다"는 말이 있습니다.

타입(data type)은 해당 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 역할을 합니다.

 

int와 같이 변수의 특성을 결정짓는 키워드를 가리켜서 자료형이라고 합니다.

int num;

 

 

 

자바 자료형 유형

·       기본 자료형

·       참조 자료형

 

 

유형

설명

기본 자료형

(primitive data type)

·       자바 컴파일러에 의해서 해석되는 자료형

·       실제 을 갖는 자료형

·       자바에서 여러 형태의 타입을 미리 정의하여 제공

참조 자료형

(reference data type)

·       자바 API에서 제공되거나 프로그래머에 의해서 만들어진 클래스를 자료형으로 선언하는 경우

·       값이 아닌 객체의 주소를 가지고 있는 자료형

·       배열, 클래스, 인터페이스

 

 


   

 

기본 자료형의 종류(Primitive Data Type)

자료형

키워드

크기

기본값

표현 범위

논리형

boolean

1byte

false

true 또는 false (0또는 1아님)

문자형

char

2byte

\u0000

0~65,535

정수형

byte

1byte

0

-128~127

정수형

short

2byte

0

-32,768~32,767

정수형

int

4byte

0

-2,147,483,648~2,147,483,647

정수형

long

8byte

0

-9,223,372,036,854,775,808~9,223,372,036,854,775,807

실수형

float

4byte

0.0

-3.4E38~+3.4E38

실수형

double

8byte

0.0

-1.7E308 ~ +1.7E308

 

 



 

Primitive Data size is like the different size of cups.


https://bit.ly/2xLOShq

 


 

자료형 분류

정수 표현

byte, short, int, long

정수를 표현하는데 사용되는 바이트 크기에 따라서 구분

실수 표현

float, double

float는 소수점 이하 6자리

double 12자리 정밀도

문자 표현

char

참과 거짓 표현

boolean

 

 

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

UML Diagram 14종류

시스템을 여러 관점(view)에서 표현할 있습니다.

1.  UseCase diagram (유스케이스 다이어그램)

2.  Sequence diagram (시퀀스 다이어그램)

3.  Class diagram (클래스 다이어그램)

4.  Activity diagram (액티비티 다이어그램)

5.  Object diagram (객체 다이어그램)

6.  StateChart diagram (상태 다이어그램)

7.  Collaboration diagram (협력 다이어그램)

8.  Component diagram (컴포넌트 다이어그램)

9.  Package diagram (패키지 다이어그램)

10.Deployment diagram (배치 다이어그램)

11.Composite structure diagram (복합 구조 다이어그램)

12.Profile diagram (프로필 다이어그램)

13.Timing diagram (타이밍 다이어그램)

14.Collaboration/Interaction/Communication  diagram (협업 다이어그램)

 

 

 

 

 

개발에서 주로 사용하는 다이어 그램

·         UseCase diagram

·         Sequence diagram

·         Class diagram

·         Activity diagram

·         StateChart diagram

 

 

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

2014. 9. 19. 17:05

변수(Variable) Development/Java


   

변수(Variable)

  • 데이터 저장을 위한 메모리 공간을 할당(확보)하는 방법을 제공하고
  • 할당된 메모리 공간의 접근(저장/참조)하기 위한 방법을 제공해 줍니다.

   

변수 선언

int num1;

long num2;

   

   

   

   

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

2014. 8. 25. 20:29

식별자 Development/Java


 

식별자 명명 규칙

·       영문자(A~Z,a~z)와 숫자(0~9)와 ‘_,$’의 조합 (_,$’ 이외의 특수문자 사용 불가)

·       첫 글자는 반드시 영문자나 ‘_’로 시작, 숫자  시작 불허

·       식별자 첫자로 숫자를 사용하지 않는 이유는 숫자와 식별자의 구별을 빠르게 할 수 있도록 하기 위해서입니다.

·       식별자는 대소문자를 철저히 구분합니다.(case-sensitive)

·       예약어는 식별자로 사용할 수 없습니다.

·        공백 문자를 포함할 수 없습니다.

·       식별자는 가급적이면 자기 역할에 맞는 의미 있는 이름을 부여하여야 합니다.

 

 

 

식별자 정의 규칙

구분

정의 규칙

사용 예

클래스

·       Camel Case

·       문자는 항상 대문자로 표현

·       하나 이상의 단어가 합쳐질 때는 각 단어의 첫 문자들만 대문자로 표현

class MyClass {

//;

}

변수와 메서드

·       변형된 Camel Case

·       문자는 항상 소문자로 표현

·       하나 이상의 단어가 합쳐질 때는 두 번째부터 오는 단어의 첫 문자들만 대문자로 표현

int num;

String strName;

public void getName(){

   //…;

}

상수

·       모든 문자를 대문자로 표현

·       하나 이상의 단어가 합쳐질 때 공백 필요 시 under score(_)를 사용하여 연결합니다.

int JAVATEST = 10;

int JAVA_TEST = 20;

 

 

 

 

 

Posted by codedragon codedragon

댓글을 달아 주세요

카메라 촬영시 촬영된 사진을 스냅샵 이미지로 보여주고 SD카드에 저장하기

  • 카메라
  • 고속영상 처리 위해 SurfaceView상속한 클래스 정의
  • 메뉴를 통한 저장파일 관리

   

   

강의 내용

activity_main.xml

LinearLayout(Horizontal) 변경

Graphical Layout > Layouts-LinearLayout(Vertical) 추가

-Graphical Layout > Form Widgets-Button추가

-Graphical Layout > image&Media-ImageView 추가

<kr.android.camera.MyCameraSurface

  

AndroidManifest.xml

<uses-permission android:name="android.permission.CAMERA"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

MainActivity.java

//고속영상을 제공하는 뷰 정의

-//객체 선언

-//생성자를 통해 XML에 등록

-//표면 생성시 카메라 오픈하고 미리보기 설정 -surfaceCreated

-//SurfaceView의 화면 크기가 바뀌는 등의 변경 시점에 미리보기 시작-surfaceChanged

-//Surface파괴시 카메라도 자원정리-surfaceDestroyed

//이벤트 처리

-ShutterCallback

-PictureCallback / PictureCallback//사진 저장

//메뉴 등록(겔러리 )

   

   

   

애뮬레이터에 카메라 센서 활성화 시키기

   

 

   

출력 결과

Ctrl + F11 누르면 가로/세로 변환

   

Shutter 버튼 클릭

   

   

   

   

   

   

   

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

Camera(카메라)

카메라를 제어할 수 있는 클래스

View에 동영상 또는 카메라 프리뷰와 같은 화면을 표시하며

빠른 화면 변화 또는 그려지는 양이 많을 경우 SurfaceView를 사용해 처리합니다.

   

   

Camera 클래스 종류

android.hardware.Camera

하드웨어 카메라 모듈을 제어합니다.

사진을 찍을 때 사용됩니다.

android.graphics.Camera

보는 시각에 따라 달라지는 3D 입체 효과를 보여 줍니다.

   

   

카메라 사용 선언문

카메라 기능을 사용하기 위해 마니페스트 파일에 다음 선언문 작성

<uses-permission android:name="android.permission.CAMERA" />

<uses-feature android:name="android.hardware.camera" />

<uses-feature android:name="android.hardware.camera.autofocus" />

   

   

카메라 생성 및 파괴

static Camera open ()

void release ()

 

Posted by codedragon codedragon

댓글을 달아 주세요

   

SurfaceView(서피스뷰)

  • 안드로이드는 OpenGL ES라이버리를 포함하고 있어 3D를 지원할 수있습니다.
  • 애플리케이션에서 3D 객체를 출력하려면 SurfaceView를 이용해야 합니다. 하드웨어 가속 기능이 있어 그래픽을 보다 빠르게 처리할 수 있습니다.
  • Surfaceview는 안드로이드의 기본 뷰 체계와 다르게 구현되어 있어 뷰를 상속하여 그래픽을 구현한 방법을 그대로 사용할 수 없습니다. 그러므로 SurfaceView를 이용한 그래픽 그리기 방법을 별도로 따라야 합니다.
  • 안드로이드의 기본 뷰 에 포함되어 있지 않기 때문에 onDraw()와 isvalidate()메소드를 사용할 수 없으며 이를 대체할 수 있는 메소드를 직접 구현해야 합니다.
  • SurfaceView는 2D그래픽도 그대로 지원합니다.
  • 카메라에서 영상을 빠르게 보여주기 위해서 광범위하게 사용됩니다.

   

   

   

   

이벤트 처리

Callback Interface는 SurfaceHolder를 통해서 작성한 Surface와 SurfaceView를 연결하기 위해서 Surface의 생성, 변경, 종료에 대한 이벤트 처리합니다.

class MyCameraSurface extends SurfaceView implements SurfaceHolder.Callback{ }

   

   

SurfaceView를 이용한 그래픽 그리기 단계

1

SurfaceView 상속하면서 Callback인터페이스 구현

2

getHolder()메소드로 SurfaceHolder객체 참조

3

SurfaceHolder객체의 addCallback()메소드를 호출하여 Callback인터페이스 설정

4

Callback 인터페이스의 surfaceCreated()메소드 재정의

5

Callback 인터페이스의 surfaceChanged()메소드 재정의

6

Callback 인터페이스의 surfaceDestroyed()메소드 재정의

   

   

Lock 잠금 기능

SurfaceView가 그래픽 작업을 할때 시스템이나 다른 어플리케이션에서 접근할 수 없도록 막는 기능을 사용합니다. (SurfaceView의 크기 변동과 동시에 그래픽을 그릴 경우 데드락이 발생합니다)

   

private void myDraw(){

Canvas _canvas = null;

   

try{

_canvas = mHolder.lockCanvas(null);

   

//객체 그리기 작업

super.draw(_canvas);

_cansvs.drawBitmap(mBitmap, 0, 0, null);

}finally{

if(_canvas!=null){

mHolder.unlockCanvasAndPost(_canvas);

}

}

}

  

   

   

SurfaceView 동작 도식도

   

   

   

SurfaceView 클래스

화면 제공

단순히 화면에 보여지는 하나의 뷰를 정의

Surface

그래픽버퍼 (데이터 제공)

SurfaceHolder 인터페이스

화면 제어

SurfaceView를 내부적으로 제어

SurfaceHolder.Callback 인터페이스

SurfaceView의 크기 변화등 상태 정보를 관리합니다.

Surface의 생성, 변경, 종료에 대한 이벤트 처리를 수행합니다.

SurfaceView에서 보여지는 화면 제어를 하기 위해서 SurfaceHolder생성하고

SurfaceHolder를 이용해서 Surface(버퍼)에 그림을 그리면 SurfaceView에 반영됩니다.

Posted by codedragon codedragon

댓글을 달아 주세요