BigData (20)
[Day11] 예외처리(Exception)

Throwable: JVM에서 프로그램 실행할 때 프로그램이 중단되는 경우에 자동으로 생성되는 클래스 (Exception, Errors)
Errors는 막을 수 없으나 Exception은 예외처리를 할 수 있다.

예외처리 - Exception(1983년도의 C++부터 생김)란?
Run Time시에 외부에 의한 값에 의하여 프로그램이 중단할 때 생성되는 클래스를 말하며
생성되는 클래스를 try~catch 문을 이용해서 처리하는 것을 말한다.

ex) NumberFormatException N=new NumberFormatException();
 [형식]
 단일 try~catch
   try { 오류가 날만한 코드;
    } catch(해당 Exception 객체) {
     처리코드;
    } finally { }
    
 다중 try~catch
  하나의 try에 여러개의 catch 구문을 사용하여
  후손의 Exception부터 선조의 Exception 순으로 예외처리를 구현한다.
 
 중첩 try~catch
 
 throws(위임) : Exception이 발생한 메소드가 try~catch를 처리하지 않고 호출하는 쪽에서
       try~catch를 처리하도록 위임하는 키워드 해당 메소드 뒤에 선언한다.
 throw(생성) : 발생하고자 하는 Exception을 명시 생성하는 키워드
     Ex) throw new Exception(); 

'BigData > JAVA' 카테고리의 다른 글

JAVA 이미지 사이즈 조절하기  (0) 2015.05.18
[Day13] 파일 입출력  (0) 2015.03.05
[Day10] 추상화  (0) 2015.03.05
[Day8] 캐스팅 연산자  (0) 2015.03.05
[Day7] 상속, 다형성  (0) 2015.03.05
  Comments,     Trackbacks
[Day10] 추상화

interface(full추상화) : public(공개), ① 상수(필드), ② 추상메소드, ③ jdk 1.8 default 메소드
      : 다중 상속(구현), 인터페이스는 공개형(jdk 1.8부터)이다!
     
[형식]     
class C extends A implements B {}
class는 다중 상속은 안되지만 class My extends A implements B, D {}
         =class My extends A implements D, B {}
interpace는 다중 상속이 가능하다
interface C extends A,B {}
class D implements C {}

[문법]

인터페이스의 접근 지정자는 무조건 다 public! 나머지 접근지정자는 사용하지 않는다.
멤버 없이 혼자 사용한다.

interface ITest { 필드, 추상, default
     void Prn(); // public abstract Prn();
     int a=10; // public (static final-필드) int a=10;
     default String getName() { return "홍길동"; }
    }
    
public static void Prn()
{ // 필드 - 변수를 상수화(pi=3.14 등등)
 final int k=10; // 지역필드, 변수 k는 20으로 변경할 수 없다.
}

interface ITest {} -> ITest.java -> ITest.class 생성자를 가지지 않는다.

class Test {

 int a;
 My m;
 public Test() {
 
     m=new My();

      }
 
 }
}

 

'BigData > JAVA' 카테고리의 다른 글

[Day13] 파일 입출력  (0) 2015.03.05
[Day11] 예외처리(Exception)  (0) 2015.03.05
[Day8] 캐스팅 연산자  (0) 2015.03.05
[Day7] 상속, 다형성  (0) 2015.03.05
[Day7] 2차원 배열  (0) 2015.03.05
  Comments,     Trackbacks
[Day8] 캐스팅 연산자

<캐스팅 하는 법>


(다운캐스팅-명시형)

bouble d=90.9;
int a = (int)d;

(업캐스팅-묵시형)
     
int a=100;
double d=a;

Object -> Test

Object obj=null;
Test T1=new Test();
  obj=T1;
 
Test T2=(Test)obj;

 

ex)

public void Prn(Object obj) {

}

Object i1 = new Object();
Prn(01);
Test T1 = new Test();
Prn(T1);

 

<주말>

주말 공부 ^.^

1. 자바의 자료형(7)
2. 자바의 기본 구문
   if, for, while, do while, switch, 중첩 for 등
 봄, 여름, 가을, 겨울, 구구단 짜기
3. 메소드 - Static, void, return Type

Test {

 main() {}
 Prn(100); // 출력
 Prn(100,200); 출력
 Prn(90.9);
 Prn('A');
 int a= Disp(100)); 출력
 double d=disp(100.0);
 char ch=disp02('A');
 String str=disp03("연습이야");

 My.Prn(100); // 출력
 My.Prn(100,200); 출력
 My.Prn(90.9);
 U_Test.Prn('A');
 int a= U_Test.Disp(100)); 출력
 double d= U_Test.disp(100.0);
 char ch=U_Test.disp02('A');
 String str=disp03("연습이야");

}

 

 

'BigData > JAVA' 카테고리의 다른 글

[Day11] 예외처리(Exception)  (0) 2015.03.05
[Day10] 추상화  (0) 2015.03.05
[Day7] 상속, 다형성  (0) 2015.03.05
[Day7] 2차원 배열  (0) 2015.03.05
[Day6] 배열  (0) 2015.03.05
  Comments,     Trackbacks
[Day7] 상속, 다형성

1. 캡슐화 : 클래스 = 속성(필드, 변수) + 메시지(기능, 메소드)
 
 2. 상속 : 캡슐화로 지정된 단일 클래스의 기능을 확장해서 사용하는 구조를 말한다.

 ex) 5과목의 총평균을 구하고 싶다.
      Score(3) -> MyScore(2) + = 5과목
     
       공학용 계산기를 만들고 싶다.
     Calc (4칙) -> 추가....
    
 클래스 간의 상속 : extends
 인터페이스 간의 상속 : extends
 클래스가 인터페이스를 상속 : implements
 
 특징 : 자바의 클래스간의 상속은 단일 상속을 원칙으로 한다.
    다중상속은 인터페이스를 여러개 구현하면서 이루어진다.
    상속시에 선조클래스와 후손클래스의 관계로 지정되며 내부적으로 생성자를 통해서 구조를 이룬다.
 
 3. 다형성
 
  public class Vector <E>
   extends AbstractList <E>
    implements List <E>
     RandomAccess, Cloneable, Serializable
     
  [형식]
   접근제한자 class 후손클래스이름
     extends 선조클래스이름{}
     
  
     
 

'BigData > JAVA' 카테고리의 다른 글

[Day10] 추상화  (0) 2015.03.05
[Day8] 캐스팅 연산자  (0) 2015.03.05
[Day7] 2차원 배열  (0) 2015.03.05
[Day6] 배열  (0) 2015.03.05
[Day5] 캡슐화  (0) 2015.03.05
  Comments,     Trackbacks
[Day7] 2차원 배열

다차원 배열(2차원)
 : 차원이 행, 열을 가진 구조를 가진 배열
 
 [형식]
  dataType [][] 변수 = { {,,,}, {,,,} };
  dataType []변수[] = { {,,,}, {,,,} };
  
  dataType [][]변수 = new dataType[요소의 크기][요소의 크기];
  dataType [][]변수 = new dataType[][] { {,,,}, {,,,} };
  
 ============================================================
 
 ex)     0   1   2
    -----------
   0  10, 20, 30
     -----------
   1  40, 50, 60
  
   2 줄의 3칸 : ar.length=2, ar[0].length=3, ar[1].length=3
       
   ar.length + ar[0].length + ar[1].length =? -> 8
 
   int [][] ar = { {10, 20, 30},
         {40, 50, 60} }; // 2, 3의 배열
         ar[행][열]
   10 -> ar[0][0]
   20 -> ar[0][1]
   30 -> ar[0][2]
   40 -> ar[1][0]
   50 -> ar[1][1]
   60 -> ar[1][2]
  
   0 -> 0, 1, 2
   1 -> 0, 1, 2
  
   for(int i=0; i<=1; i++) {
    for(int j=0; i<=2; j++) {
     System.out.println(ar[i][j]);
    }
   }
    
  
  
 ============================================================  

'BigData > JAVA' 카테고리의 다른 글

[Day8] 캐스팅 연산자  (0) 2015.03.05
[Day7] 상속, 다형성  (0) 2015.03.05
[Day6] 배열  (0) 2015.03.05
[Day5] 캡슐화  (0) 2015.03.05
[Day5] 반복문  (0) 2015.03.05
  Comments,     Trackbacks
[Day6] 배열
배열이란?
 같은 자료형의 나열형 값들을 하나의 이름으로 등록해서 사용하는 것을 말한다.
 값은 0부터 시작하는 인덱스로 시작된다.
 length라는 속성으로 배열의 요소의 개수를 리턴받는다.
 
 목적 : 메모리 효율성과 관리의 유연성
    ex) 달걀꾸러미
   
 자바의 배열 : 차원이 하나인 일차원 배열, 다차원, 객체배열(Object Array)이 있다.
 
 - 1. 일차원 배열 : 행으로 값을 관리하는 차원이 하나인 배열
   [형식]
  
   ex) 10 20 30 40 : Ar
  
   dataType [] 변수 = {,,,,}; int [] ar = {10, 20, 30, 40};
   dataType 변수 [] = {,,,,}; int ar[] = {10, 20, 30, 40};
   dataType [] 변수 = new dataType[요소의 크기];
       int [] ar = new int [4]; // 자유영역 공간에 정수형 4개 확보, 0으로
        ar[0]=10;
        ar[1]=20;
        ar[2]=30;
        ar[3]=40;
         => ar.length=4 (값(요소)의 개수를 리턴한다)
         => 값(요소)의 개수(4)와 인덱스(3)는 -1의 차이가 난다
         
   dataType [] 변수 = new dataType[] {,,,,};
       int [] ar = new int [] {10, 20, 30, 40};
      
   =========================================================
  
   int []a = {10, 20};  (O)  -> a.length(2) // 이 방식을 더 권장한다
   int a[] = {10, 20};  (O)
   int []a = {10, 20,}; (O)   -> a.length(2)
   
   int [] a = {10,,20}; (X) // 중간의 공백은 허용이 안됨
   int [] a = {,,};     (X)
   int [5] a = {10, 20, 30, 40, 50}; (X)
   
   =========================================================  
  
  

 

'BigData > JAVA' 카테고리의 다른 글

[Day7] 상속, 다형성  (0) 2015.03.05
[Day7] 2차원 배열  (0) 2015.03.05
[Day5] 캡슐화  (0) 2015.03.05
[Day5] 반복문  (0) 2015.03.05
[Day4] 조건문  (0) 2015.03.05
  Comments,     Trackbacks
[Day5] 캡슐화

자바의 특징 3가지

1. 캡슐화(클래스): user_DataType을 선언하는 자료형
 클래스의 멤버 (필드, 멤버 변수, 생성자, 멤버 메소드)

 객체=인스턴스=오브젝트(클래스로 생성된 각각의 것들)
 
 static 멤버 : 선언과 동시에 static 영역에 bind가 되면서 클래스.멤버로 바로 실행된다. (binding)
 
 non-static 멤버 : 생성된 주소가 없기 때문에 new 연산자를 이용해서 객체가 생성될 때 호출할 주소가 대입되어
     대입된 주소를 통해 호출되어 진다.
     
     클래스명   클래스변수 = new 클래스명();
     Score  s1=new Score();
     Score  s2=new Score(); 
     Score  s3=new Score(); 
     
     클래스변수.멤버로 호출한다. 클래스변수=인스턴스
     
     
 <생성자란?>
 
  가. 클래스 이름과 동일하되 반환형은 없고 자바에서는 public을 원칙으로 사용한다.
  
  나. 생성자는 overload 할 수 있다.
  
  다. 생성자는 this()라는 내부 키워드를 사용하여 생성자끼리 호출이 가능하다.
  
  라. 생성자는 객체를 통해 명시호출 할 수 없고 객체를 생성할 때 자동으로 한 번만 호출된다.
  
   My  m=new My();
    m.My(100); ----> (X)
   My  m=new My(100); ----> (X)
  
  마. 생성자를 명시하지 않으면 default 생성자가 호출되고 하나라도 명시하면 생성된 객체의 매개인자에 따라
   맵핑된 생성자가 호출된다. (-> 생성하면 default는 생성되지 않는다는 것임)
   
   new My(); -> public My() {}
   new My(10); -> public My(int a) {}
   new My(10, 10); -> public My(int a, int b) {}
   
  바. 생성자는 상속되지 않는다. 상속시 선조의 생성자는 super()라는 키워드를 사용한다.
  
  사. 생성자의 목적은 멤버변수의 초기화에 있다.
  

2. 상속: 클래스의 기능을 선조와 후손의 개념을 이용해서 기본 클래스에서 확장해서 사용

3. 다형성(추상화): 상속시 선조에 따른 후손 클래스를 다양한 형태를 가진 결과를 유도하는 것

===========================================================================================

[클래스Class] : 사용자 자료형을 말한다.

 - 구성: 멤버필드(public static final ...PI),
      생성자, 멤버변수, 멤버 메소드를 가진다.
  
   [형식]
    접근지정자(public, private 등) class UserName {
      구성 ...
    }
    
   ex) int a, double d;  => 자주 쓰는 두 개를 Test라는 하나의 이름으로 묶을 수 없을까? -> 클래스의 키워드
  
     <선언>
  
     public class Test {
    
      int a;
      double d;
    
     }
    
    
     <사용은 선언된 클래스 자료형을 생성(new)해서 사용하도록 한다>
    
     heap: 자유영역(동적할당) 공간, 그림판 백그라운드
         new를 만나면 동적 할당 공간에 메모리를 실행하고 실행이 끝나면 GC(가비지컬렉터)가 메모리를 자동 소거시킨다.
    
     stack&static: 정적공간 -> class(자바에서 씀), struct, union 선언하면 주소(&)를 관리하는 곳
           static(자바에서 씀)
           호출하면 Bind를 Binding 한다.
    
     static, heap, stack;
    
     1. Test t1=new Test(); // Test라는 자료형의 변수만큼 메모리를 확보한다.
     2. 확보된 메모리의 주소를 이용해서 멤버에 값을 전달한다.
      t1.a=100;
      t1.d=90.9;
      
      
  - 값 전달은 은닉된 멤버변수(private)에게 오픈된 메서드(public)가 값을
     전달 및 변경(void setXX)하고 리턴받는 구조(data type getXX)를 가진다.
    setter & getter 라고 부른다.


===========================================================================================

 


 

 

'BigData > JAVA' 카테고리의 다른 글

[Day7] 2차원 배열  (0) 2015.03.05
[Day6] 배열  (0) 2015.03.05
[Day5] 반복문  (0) 2015.03.05
[Day4] 조건문  (0) 2015.03.05
[Day3] JVM (Java Virtual Machine)의 메모리  (0) 2015.03.05
  Comments,     Trackbacks
[Day5] 반복문

3. 반복문 - 입력(while, do~while)

 while문 : {}안에 명령문이 조건식이 true일 때만
     반복적으로 수행하는 구문
 활용 :   무한루프에서 제어변수, 조건식을 이용해서 원하는만큼 반복을 제어한다.
  
 [형식]
  while(true) { // 자바는 0과 1로 true/false을 구분하지 않음
   명령;
  }
  
 자바의 구문에서 사용되는 특수 키워드(예약어)
 : break(구문), return(메서드 중단), continue(구문)
 
 
 do ~ while() 문 : while문과 동일하되 조건식이 형식에 나중에 명시되므로
      조건식이 false 경우라도 명령이 한 번은 수행된다.
 [형식]
  do {
   
   명령;
   
  } whlie(조건식);
  
  
 - while : 현금인출기
 - do~while : 예약시스템, 발권시스템, 메뉴리스트(코드예문-앱)
 
 출력반복 : for - 초기식, 조건식, 연산식을 하나의 구문에 ;를 기준으로 분류해서 명령을 수행하는 단일 반복을 말한다.
 
 [형식]
 
  for(초기식(1); 조건식(2); 연산식(3)) { // for의 변수 규칙: i, j, k, l, m, n
   명령(4);
  }
  
  start (1) -> (2) 참이면 -> (4) -> (3)
      -> (2) 참이면 -> (4) -> (3)
      -> 조건식이 거짓이 되면 end
  
  
  for(;;) {} - 무한 루프
  
 자바의 중첩구문 : 자바의 기본구문 (조건, 선택, 반복)문 등을 중첩으로 사용할 수 있다.
 
 - 다중 for문은 출력의 나열을 원할하게 사용할 수 있는 특징을 가진다.
 
 [형식]
 
 for(초기식; 조건식; 연산식) {
 
  for(초기식; 조건식; 연산식) {
 
   명령;
 
  }
 
 }
 
 - 중첩 for문을 2차원 행렬로 잡고 유연하게 연동한다.
  outter는 줄을 담당, inner는 칸을 담당 
  
  
  

'BigData > JAVA' 카테고리의 다른 글

[Day6] 배열  (0) 2015.03.05
[Day5] 캡슐화  (0) 2015.03.05
[Day4] 조건문  (0) 2015.03.05
[Day3] JVM (Java Virtual Machine)의 메모리  (0) 2015.03.05
[Day2] 자료형  (0) 2015.03.05
  Comments,     Trackbacks