개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

클래스와 인스턴스 예제(1)
 
 
class Person {
     public int age;
     public long height;
     public float weight;
}
public class PersonTestMain {
     public static void main(String[] args) {
          Person brother = new Person();
          brother.age = 100;
          brother.height = 170L;
          brother.weight = 67.0F;
          System.out.println(“age : ” + brother.age);
          System.out.println(“height : ” + brother.height);
          System.out.println(“weight : ” + brother.weight);
     }
}

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

클래스와 인스턴스
 
 
변수의 한계
데이터를 지속적으로 유지할 수 없음.
한번에 하나의 데이터만 가질 수 있음.
 (여러 개의 데이터를 한번에 처리할 필요가 있음)
이런 한계를 극복하기 위해 c에서는 구조체를 사용.
구조체
C에서 사용하던 데이터 타입 생성기
기본 데이터 타입의 한계를 극복하기 위해 등장
하나의 변수에 2개 이상의 수를 담기 위해 사용
사용자 정의 데이터 타입.
자바에서는 사용하지 않음
 (데이터만 담음, 메모리에 바로 적재됨)
클래스
객체 지향에서 가장 중요한 개념
새로운 데이터 타입을 만드는 데이터 타입 생성기
많은 변수들을 모아서 새로운 데이터 타입을 만들어 냄
사용자 정의 데이터 타입의 집합체
클래스는 데이터 형을 의미
구조체에서 발전된 형태
특징
new 연산자를 사용하는 순간 메모리 생성
메서드 포함 가능
접근 지정의 개념 적용(public, private, protected, default)
상속의 개념 포함됨
인스턴스
인스턴스는 그 데이터 형의 실체를 의미
실체라는 것은 메모리에 생성됐다는 것을 의미.
붕어빵과 붕어빵 틀
붕어빵 틀
붕어빵 틀은 하나 밖에 없다.
붕어빵 틀을 붕어빵에 대한 명세 또는 정의라 볼 수 있다.
붕어빵 틀은 클래스 이다.
붕어빵
틀에 붕어빵 재료를 넣어 구우면 붕어빵을 무제한적으로(재로가 남아있는 한) 만들어 낼 수 있다.
붕어빵이 인스턴스 이다.
인스턴스는 클래스를 메모리에 생성한 것을 의미하며 일반적으로 객체와는 큰 구별 없이 사용한다.
인스턴스를 객체라 부르기도 하므로 “객체지향”이라고 할 때 “객체”는 인스턴스라고 보면 된다.
자동차냐 트럭이냐(명세를 구체화)

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

형 변환(casting) 예제(3)

 
 
public class TypeConversion {
 public static void main(String[] args) {
  String strNum1="12345";
  String strNum2="67890";
//  String strNum1=args[0];
//  String strNum2=args[1];
  int    tempNum1=1000;
  //String--> int
  int intNum1=Integer.parseInt(strNum1);
  int intNum2=Integer.parseInt(strNum2);
  int sum = intNum1+intNum2;
  double douNum1=Double.parseDouble(strNum1);
  //int--> String
  String stringSum = Integer.toString(sum);
  System.out.println(stringSum);
  String strNum3=Integer.toString(tempNum1);
  System.out.println(strNum3);
 }
}

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

형 변환(casting) 예제(2)

 
 
CatingRangeMain.java
public class CatingRangeMain
{
   public static void main(String[] args)
   {
      char cc='ㄱ';//
      System.out.println(cc);// char를 찍자
      System.out.println((int)cc); // int로 바꾸어 찍자
      cc='ㄴ';//
      System.out.println(cc);// char를 찍자
      System.out.println((int)cc); // int로 바꾸어 찍자
      cc='ㄷ';//
      System.out.println(cc);// char를 찍자
      System.out.println((int)cc); // int로 바꾸어 찍자
      System.out.println("------------------------------");
      for(int i=1;i<=100;i++){
         System.out.print((char)i+" ");//찍고 공백 추가 그자리
         // (char)i --> int를 char로 casting
         if((i%10==0)){// 10으로 나누어 떨어지는 가?
            System.out.println();//한칸을 내려라
         }
     }
   }
}

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

형 변환(casting) 예제(1)
 
 
public class DataCastingTest {
  public static void main(String[] args)  {
 byte ba=10;
 byte bb=20;
 byte bc=10+20;
 //byte bd=ba+bb; 
 byte be=(byte)(ba+bb);  
 System.out.println("01 : "+bc);
 System.out.println("02 : "+be);
 
 short sa=30;
 short sb=50;
 short sc=30+50;
 //short sd=sa+sb;
 short se=(short)(sa+sb); 
 System.out.println("03 : "+sc);
 System.out.println("04 : "+se);
 int ia=20;
 int ib=30;
 int ic=20+30;  
 int id=ic+sa;
 System.out.println("05 : "+ic);
 System.out.println("06 : "+id);
 
 long la=40l;
 long lb=50L;
 long lc=la+lb;                 
 System.out.println("07 : "+la);  
 System.out.println("08 : "+lb);
 System.out.println("09 : "+lc);
 
 float fa=45.0f;
 float fb=46.67F;
 //float fc=30.4; 
 float fd=30;   
 float fe=fa+fb;
 
 double da=12;
 double db=45+Float.MAX_VALUE;
 double dc=da+db;
 //int di = 30.4;
 System.out.println("10 : "+dc);
 System.out.println("11 : "+"int 범위: "+Integer.MIN_VALUE+" ~ "+Integer.MAX_VALUE);
 System.out.println("12 : "+"float 양의 범위: "+Float.MIN_VALUE+" ~ "+Float.MAX_VALUE);
 System.out.println(5/3);
 System.out.println((float)5/3);
 System.out.println((double)5/3);
 }
}

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

형 변환(casting)
 
 
때로 숫자 타입을 다른 타입의 숫자로 바꾸어야 할 때가 있다.
기본 데이터 타입의 형 변환
작은 수가 큰 수로 형 변환되는 것은 자동이다.(묵시적)
반대의 경우는 강제 형 변환이 필요(명시적) -오버플로우 발생
덜 정밀한 수가 정밀한 수로 형 변환되는 것은 자동이다.(묵시적)
반대의 경우는 강제 형 변환이 필요(명시적) -오버플로우 발생
데이터 타입의 연산에 의한 형 변환
큰 수와 작은 수를 연산했을 때
큰 수로 형 변환된다.
덜 정밀한 수와 정밀한 수를 연산했을 때
정밀한 수로 형 변환된다.
정수와 실수를 연산했을 때
실수형으로 형 변환된다.
자동 형 변환의 예 double d = 3*4.5F;
3*4.5F의 결과는 float형이 된다.(정수와 실수의 연산)
float형의 결과가 double d에 할당되면서 float형이 double형으로 자동 형 변환된다.

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

할당
 
 
할당 
변수에 데이터를 넣는 것
기본타입에서 할당은 “Copy of value”
기본 법칙
오른쪽에서 왼쪽으로만 할당
변수끼리도 할당 가능
변수에  상수가 존재하더라도 다른 것을 할당하면 마지막 할당한 것이 할당 “ = ”연산자 사용
할당의 예
선언과 할당을 동시에 : int a = 100;
선언과 할당을 분리 : int a; a= 100;
여러 개를 동시에 선언과 할당 : int a = 100, b = 200;
분리하여 여러 개를 동시에 선언과 할당 :
 int a,   b; a = 100,b=200;
변수끼리의 할당 : int a = 100, b; b = a;

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

상수 예(2)
 
public class SansuStatic {
 public static final int MAN=1;
 public static final int WOMAN=2;
}
public class SansuStaticMain {
 
 public final static int MEN   = 3;
 public final static int WOMEN = 4;

 

 public static void main(String[] args) {
  int people1=WOMEN;
  switch(people1){
     case 3: System.out.println("남자");break;
     case 4: System.out.println("여자");break;
  }
  //int SansuStatic.WOMAN=4; 상수에 assign 못함
  int people2=SansuStatic.WOMAN;
  switch(people2){
     case 1: System.out.println("남자");break;
     case 2: System.out.println("여자");break;
  }
 }
}

 

+ Recent posts