16일차 수업 ( DataBase install 및 uninstall )

 

1. 데이타베이스( DataBase )

가. 데이터베이스 관리시스템 ( DataBase Management System : DBMS )
- 일반적으로 '데이터베이스'와 혼용해서 사용됨.
- software
- 벤더(vendor)?
=> 오라클, MS, IBM....

- 데이터를 관리하는 시스템 ( 데이터 저장, 수정, 삭제, 조회 등 )

 

나. 데이터 관리 방법
 => 계층형, 망형, 관계형, 객체형..... , 근래 no - sql(근래)
  일반적으로 관계형으로 관리한다.

 

다. 관계형 데이타베이스
  = 데이터를 테이블(table)로 관리하는 방법.

 

라. 오라클 install

 -서비스 등록
컴퓨터 > 관리 > 서비스 ===> 실행 => services.msc

   :xxxxTNSListener
    xxxxServiceORCL 2가지는 반드시 시작해야 된다.

 물리적으로 설치2개됨
  C:/app
  C:\프로그램파일\오라클

 

* uninstall - 지우는 과정이 복잡하니 천천히 알아보자!
가. 서비스 종료
나. 레지스트리 수정
    regedot > xxx Local Machine > SOFTWARE > ORACLE 삭제
                                > SYSTEM > Controlset01 >  Oracle로 시작하는 폴더 모두삭제
다. 재부팅
라. 물리적인 폴더 2개 삭제
   C:/app   (지울시에 용량이 커서 지우는데 오래걸릴수있으니 끈기를 가지고 기다리자 )
   C:\프로그램파일\오라클

 

 

 

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

 

 

 

데이타베이스( DataBase )
가. 데이터베이스 관리시스템 ( DataBase Management System : DBMS )
: 일반적으로 '데이터베이스'와 혼용해서 사용됨.
: software
: 벤더(vendor)?
  => 오라클, MS, IBM....

: 데이터를 관리하는 시스템.
  ( 데이터 저장, 수정, 삭제, 조회 등 )

나. 데이터 관리 방법
 => 계층형, 망형, 관계형, 객체형..... , 근래 no - sql(근래)
  일반적으로 관계형으로 관리한다.

다. 관계형 데이타베이스
  = 데이터를 테이블(table)로 관리하는 방법.

라. 오라클 11g 설치

 -서비스 등록
컴퓨터 > 관리 > 서비스 ===> 실행 => services.msc

   :xxxxTNSListener
    xxxxServiceORCL 2가지는 반드시 시작해야 된다.

 물리적으로 설치2개됨
  C:/app
  C:\프로그램파일\오라클

*언인스톨
가. 서비스 종료
나. 레지스트리 수정
    regedot > xxx Local Machine > SOFTWARE > ORACLE 삭제
                                > SYSTEM > Controlset01 >  Oracle로 시작하는 폴더 모두삭제
다. 재부팅
라. 물리적인 폴더 2개 삭제
   C:/app
   C:\프로그램파일\오라클
끝!!!! 

2. 오라클 접속 방법

가. 툴 이용
a. 무료 툴 : 1) SQL*PLUS -> 오라클 설치시 자동설치됨
   관리자 : sys/oracle as sysdba
  일반사용자 : scott/tiger
 
  c:/> sqlplus 사용자계정/비밀번호
 
       2) SQLDveloper - > www.oracle.com.
b. 유료 툴 : Toad, SQLGate, Orange

나. 프로그램 언어 이용
 : 자바로 이용 (JDBC)

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

9일차 수업 ( 예외처리 )

1. 예외 처리 

 일반적으로 프로그램 실행 중에 발생되는 의도하지 않은 문제를 의마하며 예외가 발생하면

프로그램은 비정상 종료된다. 이러한 현상을 방지하고 정상 종료되게 처리하는것을

예외처리 ( Exception Handling ) 이라고 한다.

 

<예외 처리 방법은 2가지>


a. try ~ catch
==> 예외가 발생된 곳에서 처리하는 방법.

 

try{

//예외발생코드

}catch(예외 클래스명 변수명){

}

위처럼 사용!

 

b. throws
==> 예외가 발생된 곳에서 하지 않고 호출한 곳으로 떠 넘기는 방법으로 main 메소드까지 떠 넘긴다.

굳이 throw 문을 사용 하는 이유는 아래와 같다.

 

 * 예외가 발생된 곳에서 그냥 try ~ catch 하면 네트워크 같은 상황에서는 사용자가 어떤 이유 때문에 원하는 결과가 안나왔는지 모른다. 따라서 throws 해서 사용자가 어디서 무슨 에러가 나왔는지 확인 할 수 있게 해야 한다.

 

====수업 내용======

 

1. 예외처리

가. 예외클래스 계층구조 파악

Object

Throwable

Exception

RuntimeException  IOException

하위클래스  하위클래스

==> API들은 어플리케이션에서 발생되는 모든 예외를 처리 가능하지 못하다. 범용적인 예외들만 처리가능하다.
detail한 예외처리는 사용자가 만들어서 처리해야 된다.
(사용자 정의 예외클래스)

* 사용자 정의 예외클래스
a. extends Exception
b. 문자열 하나 갖는 생성자.
   ==> 문자열은 예외 정보 저장시 사용된다.
c. 필요하면 여러 구성요소 추가 가능하다.
   ==> 사용자가 지정한 특정한 조건에 위배되었을 때.
   ( 문법적으로 문제 없다 )
   ex) 잔액부족
 검색을 했는데 데이터가 없는 경우,
 나이를 저장하는데 30이상,
 이메일 입력시 @를 입력 안하는 경우,

나. 예외처리 방법
==> 예외클래스 사용한다.
a. try ~ catch 문
==> 예외가 발생된 곳에서 처리하는 방법.

b. throws 문
==> 예외가 발생된 곳에서 하지 않고 호출한 곳으로 떠 넘기는 방법.
main 메소드까지 떠 넘긴다.
==> 주로 사용하는 이유
 : 예외가 발생된 곳에서 그냥 try ~ catch 하면 네트워크 같은 상황에서는 사용.
네트워크 같은 상황에서는 사용자가 어떤 이유 때문에 원하는 결과가 안나왔는지 모른다.
따라서 throws 해서 사용자가 예외 정보를 보게 해야 된다.

<주요 용도 2가지>

a. 사용자가 지정한 예외 조건.
- 사용자정의 예외 클래스가 필요
- 예외조건에 위배되면 예외를 발생시켜야 된다.
  throw new 사용자 정의 예외클래스(문자열);
- throws 하는 방법으로 예외처리한다.

b. 범용적인 예외 발생시 --> 사용자 정의 예외로 변경할 때

==> 0으로 나누었을 때 ArithmeticException 발생되고, 예외처리하고 예외정보 출력하면 /byZero 출력된다.
==>“0으로 나누어 예외 발생된”한국어로 된 예외로 다시 출력해야 된다.


ex)

0으로 나눔 ----> ArithmeticException 발생 ---> /byzero

==> 변경
0으로 나눔 --> ArithmeticException 발생 --> 예외처리(try-catch)--> 사용자 정의 예외클래스 발생.
 --> 사용자 정의 예외클래스 처리 --> “0으로 나누워 발생"

다. 예외 클래스의 종류 2가지

a. compile checked Exception
==> 컴파일시 예외처리 유무를 체크
 ( 만약에 예외처리가 안되어 있으면 컴파일 에러 발생)
==> IOException , SQLException 계열
특징 :
IO작업, SQL 작업과 관련된 메소드를 사용하는 경우에 반드시 예외 처리를 해야된다.
이유?  worker메소드에서 throws XXXException 한다.
따라서 caller 메소드에서는 try~catch해야된다.
안하면 에러 발생된다.


b. compile unchecked Exception
==> 컴파일시 예외 처리 유무를 체크안함
==> RuntimeException 계열
==> 실행할 때 발생되는 예외들이다.
==> 특징 : 예외처리할 필요가 없다.
    예외가 발생되지 않게 코드로 구현이 가능하기 때문이다.
개발자가 제대로 조건 체크했으면 에외발생 안되는 사항이다.
==> 따라서 예외 처리 할 생각 말고 조건 체크 잘해라!

2. 다중 데이터 처리

==> 대량의 데이터를 저장할 수 있는 방법

* 데이터 저장 방법
가. 변수

나. 배열
생성하면서 크기 지정해야 된다. (초기 사이즈)
따라서 데이터를 나중에 추가가 불가능하다. / 배열을 다시 생성해야 된다.

- 같은 데이터만 저장 가능하다. (다형성 제외 )
- 기본형 배열 사용 가능하다.
- 참조형 배열 사용 가능하다.
- 배열크기 : 배열명.length

다. 컬렉션 ( Collection )
- 생성만 하면 된다. 크기는 자동 증가/감소 된다.
- 서로 다른 데이터 모두 저장 가능하다.
- 저장 데이터는 참조데이터(클래스)만 가능하다.
- 기본형 저장 안되는 것이 아니고 Wrapper 클래스 사용하여 저장한다.

=> 결국 모든 데이터 저장 가능하다.
 - java.util 패키지에 존재하는 몇 개의 클래스 파일.
-컬렉션 크기 : 변수명.size()

* 크기(길이) ?

가. 문자열 길이
 str.length();
나. 배열 길이
 배열명.length
다. 컬렉션 길이
 변수명.size()
라. 파일크기


- 컬렉션의 계층구조

 Object

 << Collection >> - 인터페이스
  
<<Set>>    <<List>>
Hashset     ArrayList(****), Vector

: 데이터 중복안됨   : 데이터 중복 허용
: 데이터 순서없음   : 데이터 순서있음


* 제네릭( generic )
==> <>
==> <클래스형>을 지정해서 사용하는 방법

ex)
//일반적
ArrayList = list = new ArrayList();
==> 얻어 올 때 반드시 형변환 해야 된다.
==> 잘못된 데이터가 저장 될 수 있다.
 (실행시 파악할 수 있다. )

// Generic
ArrayList<저장할 클래스명> list = new ArrayList<>(); //JAVA 7부
==> 얻어 올 때 형변환 할 필요가 없다.
==> 잘못된 데이터를 컴파일 시점에 알 수 있다.

 

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

5일차 수업 ( Argument로 정수및 문자형 받아오기 )

1. 클래스들간의 관계( class relationship )
=> 여러 클래스들간에 유기적으로 관련을 맺으면서 하나의 어플리케이션이 동작된다.

=> 현실세계도 객체간의 관계가 존재한다.
  ( 부모자식관계, 학생과교수관계, 친구관계, ....)

   마찬가지로 가상세계에서도 특별한 관계가 존재한다.

 

2. 자바의 관계?

a) has a 관계

트럭 has a 엔진 => 트럭과 엔진의 lifecycle 동일

b) is a 관계 -> 상속관계

관리자 is a 사원
상속관계이다.

 

3. 상속 ( inheritance )

- 클래스들간의 관계중에서 is a 관계이다.
  ( 같은 종 )

 

public class 학생{}
// 대학생 is a 학생
public class 대학생 extends 학생{}

 

* 특징
1 )부모 클래스의 멤버(인스턴스변수,메소드)를 자식이 선언없이 사용 가능하다.

->'상속받는다' 라고 부른다.
2) 부모생성자와 private로 지정된 멤버는 상속 불가.

-> 단일 상속만 제공된다.
==> extends 클래스
==> 계층구조를 명확하게 하기 위해서

3) 자식보다 부모를 먼저 생성한다.
따라서 부모의 생성자를 자동호출하는데 super키워드 이용해서 호출한다.

4) 모든클래스(사용자지정클래스 = API)는 계층구조로 되어 있다.
( 상속관계 )
java.lang.object 클래스가 모든 클래스의 최상위 클래스이다.
(==> object 클래스의 멤버를 모든 클래스가 사용가능하다.)
extends 가 없는 클래스에는 자동으로 extends Object가 지정된다.
따라서 모든 클래스의 부모는 Object가 된다.
항상 Object 클래스가 먼저 생성되고 나중에 순차적으로 생성된다.

 

4. 접근 지정자 (access modifier )
* 지정자( modifier )?
=> 특별한 동작을 취하도록 의미를 갖는 키워드.

 

가. 일반 지정자 : static , final, abstract

예>
 static int num;
 static final int size =3;
 public void a(){}
 public abstract void b();
 public abstrant class Test{};
 public final class AAA{}

나 접근 지정자

=> 클래스들간에 접근제한을 설정하는 방법.

=> 종류 4가지

- public
=> 모든 클래스가 접근 가능하다.
   ( 같은 패키지 및 다른 패키지 모두)
=> 클래스와 메소드에 주로사용. 
- protected 같은 패키지에서 접근가능. +"상속관계(패키지가 달라도 가능)
 
- (default, friendly)
- private
=> 같은 클래스에 접근가능
   ( 상송관계도 부모의 private 멤버를 자식이 접근 불가)
=>인스턴스 변수에 주로 사용
   ( 데이터 보호 이유, 메소드 통해서 인수턴수 변수에 접근 가능)

예> private Strign name;
    plevate int = age;
    외부에서 접근할 필요가 없는 로컬메소드 사용시.
예> public class Test{
 public void a(){ local();}
 public void b(){}

 private void local(){} //Test클래스에서만 사용가능
 }

-> 은닉화 은닉화 구현시가 이용된다.

 

 

Argument 로 정수형 및 문자형 받아오기

 

int data1 = Integer.parseInt(args[0]);  //정수형으로 받아오는것

String arg = args[1];                        // 문자열로 받아오는것
char operator = arg.charAt(0);          //문자열로 받아온것을 문자형으로
int data2 = Integer.parseInt(args[2]);

 

 

====힉습 내용====

 

 1. 클래스들간의 관계( class relationship )
=> 여러 클래스들간에 유기적으로 관련을 맺으면서 하나의 어플리케이션이
   동작된다.

=> 현실세계도 객체간의 관계가 존재한다.
  ( 부모자식관계, 학생과교수관계, 친구관계, ....)

   마찬가지로 가상세계에서도 특별한 관계가 존재한다.

2. 자바의 관계?
==> 학생, 대학생, 컴퓨터, 트럭, 엔진, 라디오.....

가. has a 관계
학생 has a 컴퓨터
트럭 has a 엔진 => 트럭과 엔진의 lifecycle 동일
                => composition
트럭 has a 라디오 => 트럭과 엔진의 lifecycle 다르다.
                  => aggregation

출력결과
==> 수정은 withdraw, deposit 메소드 리턴타입을 boolean으로 변경
입금 : 300 true
출금 : 400 true
출금 : 500 true
출금 : 500 false

홍길동 잔액 : 400

나. is a 관계

대학생 is a 학생
관리자 is a 사원
: 상속관계이다.

3. 상속 ( inheritance )

: 클래스들간의 관계중에서 is a 관계이다.
  ( 같은 종 )
: UML
 학생 => 큰타입 ( 부모클래서, super클래스, parent클래스)
  => subclassing (상속)

 대학생 => 작은타입( 자식클래스, sub클래스, child클래스 )

* 코드표현

public class 학생{}
// 대학생 is a 학생
public class 대학생 extends 학생{}

* 특징
1 )부모 클래스의 멤버(인스턴스변수,메소드)를 자식이 선언없이 사용 가능하다.

->'상속받는다' 라고 부른다.
2) 부모생성자와 private로 지정된 멤버는 상속 불가.

-> 단일 상속만 제공된다.
==> extends 클래스
==> 계층구조를 명확하게 하기 위해서

3) 자식보다 부모를 먼저 생성한다.
따라서 부모의 생성자를 자동호출하는데 super키워드 이용해서 호출한다.

4) 모든클래스(사용자지정클래스 = API)는 계층구조로 되어 있다.
( 상속관계 )
java.lang.object 클래스가 모든 클래스의 최상위 클래스이다.
(==> object 클래스의 멤버를 모든 클래스가 사용가능하다.)
extends 가 없는 클래스에는 자동으로 extends Object가 지정된다.
따라서 모든 클래스의 부모는 Object가 된다.
항상 Object 클래스가 먼저 생성되고 나중에 순차적으로 생성된다.


예>
 Object
 
 Employee{}

 Manager extends Employee{}


4. super 키워드

:this 키워드 자신을 의미하고
 super 키워드는 부모를 의미한다.

:super 키워드 사용하기 위해서는 상속전제/

:super

 

 


예제>
1) 개별적으로 구현
 사각형       원       삼각형
-w            -r        -w
-h                      -h

-넓이()       -넓이()   -넓이()

2) 상속이용
==> 사각형,원,삼각형의 공통적인 특징을 추출해서 큰 개념의 클래스 생성 가능 (  일반화 방법 )

 도형
 -w
 -h
 -

사각형       원       삼각형
-area(){     - area{r*r*3.14}        -area(){w*h/2}
w*h
}

6. 접근 지정자 (access modifier )
* 지정자( modifier )?
=> 특별한 동작을 취하도록 의미를 갖는 키워드.

종류 2가지
가. 일반 지정자 : static , final, abstract

예>
 static int num;
 static final int size =3;
 public void a(){}
 public abstract void b();
 public abstrant class Test{};
 public final class AAA{}

나 접근 지정자

=> 클래스들간에 접근제한을 설정하는 방법.

=> 종류 4가지

- public
=> 모든 클래스가 접근 가능하다.
   ( 같은 패키지 및 다른 패키지 모두)
=> 클래스와 메소드에 주로사용. 
- protected 같은 패키지에서 접근가능. +"상속관계(패키지가 달라도 가능)
 
- (default, friendly)
- private
=> 같은 클래스에 접근가능
   ( 상송관계도 부모의 private 멤버를 자식이 접근 불가)
=>인스턴스 변수에 주로 사용
   ( 데이터 보호 이유, 메소드 통해서 인수턴수 변수에 접근 가능)

예> private Strign name;
    plevate int = age;
    외부에서 접근할 필요가 없는 로컬메소드 사용시.
예> public class Test{
 public void a(){ local();}
 public void b(){}

 private void local(){} //Test클래스에서만 사용가능
  
}

-> 은닉화 은닉화 구현시가 이용된다.

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

4일차 수업

 

1. this 키워드 : 메모리에 올라간 자기 자신을 가리킬때 사용

가. 인스턴스변수와 로컬변수와 동일하기 때문에 구별하기 위해 사용
    this.XXX 인스턴스 변수를 가리킨다.

예> String name;  // 인스턴스 변수
    public void setName(String name){  // 로컬변수
     this.name = name;
    }
나. 오버로딩 생성자를 호출할때 사용. (생성자 끼리 서로 호출) 

 

2. 패키지 ( package )
- 클래스 파일들을 관리할 목적으로 묶는방법.
- 관련된 클래스들끼리 동일한 패키지명으로 지정한다. ( 윈도우 폴더와 비슷 ) 

3. import 문

- 패키지가 다른 클래스를 사용하기 위한 방법.

- 여러개의 import 문을 사용 할 수있다.

 

예> import 패키지명.패키지명2.클래스명;

 

4. 가변 인자 (Varargs)

- 일반적인 메소드 호출시 사용
- 메소드명과 argument list가 일치해야 된다.

 

 

5. 배열 (array)

* 데이터 저장 방법
가. 변수
==> 데이터 10개이면 변수 10개 필요.
    10개의 변수명을 모두 알아야 사용 가능하다.
    서로 다른 변수명을 모두 알아야 되기 때문에 관리가 어렵다.
나. 배열
==> 다수의 데이터를 하나의 이름으로 관리 가능하다.
 (배열명)
==> 특징 : 같은 데이터만 저장 가능하다.
      인덱스(첨자)로 접근 한다. ( 0부터 시작)
      배열의 크기는 배열명.length 로 알 수 있다.
      배열은 참조형이다.
      (배열명에는 위치값이 저장된다.)
      배열은 참조형이기 때문에 new 이용해서 생성한다.
 기본형도 참조형도 모두 배열로 관리가 가능하다.

 

2차원 배열일 경우

배열명 = new 데이터형[행크기][열크기]; // 열크기 생략가능

 

===학습세부사항 ===

1. this 키워드
정의 : 메모리에 올라간 자기 자신을 가리킬때.

<용도 2가지>
가. 인스턴스변수와 로컬변수와 동일하기 때문에 구별하기 위해 사용
    this.XXX 인스턴스 변수를 가리킨다.

예> String name;  // 인스턴스 변수
    public void setName(String name){  // 로컬변수
     this.name = name;
    }
나. 오버로딩 생성자를 호출할때 사용. (생성자 끼리 서로 호출)

다른 클래스에서 생성자 호출방법?
=> new 클래스명();

같은 클래스에서 오버로딩 생성자 호출방법?
this();
this(12):
용도는 중복제거 및 데이터 초기화 효율
반드시 생성자에서 사용하고, 첫 라인에서 사용해야 된다.
예>
public Student(){}
public Student(int s){
 
 this(s,null);
}
public Student(int s, String n){
 this(s,n,null);
}

2. 패키지 ( package )
용도 : 클래스 파일들을 관리할 목적으로 묶는방법.
관련된 클래스들끼리 동일한 패키지명으로 지정한다. ( 윈도우 폴더와 비슷 )

방법 :  package 패키지명;
 package 패키지명.패키지명2;
특징 : 패키지명은 유일한 도메인을 사용한다.
예> com.xxx
java 로 시작하는 패키지는 사용불가.
하나의 클래스에 한번만 지정 가능.

package com.stu;

public class Student {}

패키치가 서로 다르면 접근이 불가능하다.
import 를 사용하면 접근이 가능하다.
* 모든 API는 패키지로 제공된다.
java.
javax.
org.
따라서 API의 클래스를 사용하기 위해서는

3. import 문

용도: 패키지가 다른 클래스를 사용하기 위한 방법.

문법 : import 패키지명.패키지명2.클래스명;

특징 :
 여러번 사용 가능하다.
package com.xxx;
improt comstu.Student;
import java.util.ArrayList;
public class

4. 가변 인자 (Varargs)

용도 : 일반적인 메소드 호출시
메소드명과 argument list가 일치해야 된다.

문법:
 가. 일반 메소드
 public void set(int n){}
 변수명.set(10);

 나. 가변인자 메소드
 public void set(int ... n){} //인수의 개수가 상관없다, 배열로 관리한다.
 변수명.set(10);
 변수명.set(10,20);
 변수명.set(10,20,30);
 
5. 클래스 다이어그램

가. 클래스만 표현

student


나. 클래스 구성요소 모두 표현
* 접근지정자 4가지
public(+)
protected (#)
(default, friendly)
private (-)

 

클래스명
 변수 ==> 접근지정자 String name;
 변수명: 데이터형
 +name:String
-----------------

생성자 ==> public Student(){}
     public Student(int s, String n){}
 + 생성자명()
 + 생성자명( 변수명 : 데이터형, 변수명 : 데이터형)

메소드 ==> public void setName(String n){}
 public String getName(){}

 +메소드명(변수명:데이터형): 리턴타입
 +getName():String
 +setName(n:String)

6. 배열 (array)

* 데이터 저장 방법
가. 변수
==> 데이터 10개이면 변수 10개 필요.
    10개의 변수명을 모두 알아야 사용 가능하다.
    서로 다른 변수명을 모두 알아야 되기 때문에 관리가 어렵다.
나. 배열
==> 다수의 데이터를 하나의 이름으로 관리 가능하다.
 (배열명)
==> 특징 : 같은 데이터만 저장 가능하다.
      인덱스(첨자)로 접근 한다. ( 0부터 시작)
      배열의 크기는 배열명.length 로 알 수 있다.
      배열은 참조형이다.
      (배열명에는 위치값이 저장된다.)
      배열은 참조형이기 때문에 new 이용해서 생성한다.
 기본형도 참조형도 모두 배열로 관리가 가능하다.

다. 컬렉션(*)

* 배열 사용 방법
가. 배열 선언
데이터형 [] 배열명; 데이터형 배열명 []; ([] 대괄호 , 브래킷)
int [] num;  String [] name;

나 배열 생성
배열명 = new 데이텨형[크기];
==> 자동으로 기본값으로 설정된다.
num = new int[4];   name = new String[3];

다. 초기화
==> 인덱스로 접근

배열명[첨자] = 값;

num[0] =1;   name[0] =  "홍길동"
num[1] = 2;   name[1] =  "이순신"
num[2] = 3;   name[2] =  "유관순"
num[3] = 4;   name[3] =  "강감찬" //에러

7. 배열 생성 방법 3가지

가. new 이용
int [] num = new int[3];
num[0] = 1;
num[1] = 2;
num[2] = 3;

나. 리터럴 이용
===> 데이터형 [] 배열명 = {값1, 값2, 값3};

int [] num = {1, 2, 3};

String [] name = {"홍길동", “이순신”, “강감찬”};

Student [] stu = {
------------------------------------------------------------------

8. 이차원 배열

가. 배열선언
 데이터형 [][] 배열명;

int [][] num;  String[][] name;

나. 배열 생성

배열명 = new 데이터형[행크기][열크기]; // 열크기 생략가능

num = new int[3][2];  name = new String[2][2];

다. 초기화

num[0][0] = 1;
num[0][1] = 2;
num[1][0] = 3;
num[1][1] = 4;
num[2][0] = 5;
num[2][1] = 6;

======================================> 정방향 배열

* 비정방향 배열 ==> 열의 크기가 다르다.

가. 배열 선언

int [][]num;

나. 배열 생성 (행 크기 지정)

num = new int[3][]; //3행만 생성

다. 열 생성

num[0] = new int[3]; //1행의 3열
num[1] = new int[2]; //2행의 2열
num[2] = new int[1]; //3행의 1열

라. 초기화

num[0][0] = 1;
num[0][1] = 2;
num[0][2] = 3;
num[1][0] = 4;
num[1][1] = 5;
num[2][0] = 6;

-------------------------------------------------------------
9. 이차원 배열 생성방법 2가지

가. new

나. 리터럴

==> 데이터형 [][] 배열명 ={{값, 값, 값},{값 },{값, 값}};

int [][] num = { {1,2,3}, {4,5},{6} };

String[][] name = { {"홍길동"},{“강감찬”},{“유관순”}};

Student [][] stu = {
 {new Student(1111, "홍길동", 20) },

 {new Student(1111, "홍길동", 20),
  new Student(1111, "홍길동", 20)},

 {new Student(1111, "홍길동", 20),
  new Student(1111, "홍길동", 20),
 new Student(1111, "홍길동", 20)}
}

10. command line 파라미터

==> public static void main(String [] args) {}
==> 실행시 파라미터를 설정하면 자동으로 main메소드의 args배열로 저장이 된다.

ex) public class Test{
public static void main(String [] args) {


}//end main
}//end class

실행 :
 Java Test 값, 값2, 값3

 

 

 

 

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

3일차 수업

 

1. 객체 ( objec )
주제가 바라보는 대상(사물)을 의미한다.
* 객체의 2가지 특성
a) 속성(attribut) : 객체를 표현하는 방법
b) 동작(operation): 객체의 행위를 의미 

 

2. 객체지향 프로그래밍?
-> 현실세계의 객체를 이용해서 가상세계에서 표현하는 프로그래밍
개발방법을 '객체지향 프로그래밍'이라고 한다.

현실세계 ---------------> 가상세계
객체 ------------------> 클래스
속성 ------------------> 변수 (instance variable)
동작 ------------------> 메소드

 

3. 객체 추출
어떤 어플리케이션을 하던지 필요한 객체를 추출하는 작업이 필요하다.
필요한 것만 필터링하는 작업을 '추상화(abstraction)'라고 한다. 필요없는건 제거

 

4. 클래스 ( class ) 

a) 인스턴스 변수 : 객체의 속성을 표현할 때 사용
b) 메소드 : 객체의 동작을 표현할 때 사용 , 인스턴스 변수를 관리할 때 사용한다.
     (변수에 값을 설정하거나 얻어오는 작업)
c) 생성자 : 인스턴스 변수에 값을 초기화하는 작업시 사용한다.
  

 

5. 클래스 종류 2가지

 

가. 재사용 클래스 
나. 재사용 클래스를 핸들링하는 클래스 ( handling class ) 

 

6. 객체생성 ( 인스턴스 화, 메모리 로딩 )
-> main메소드가 없는 클래스를 메모리에 올려주는 작업을 의미한다.

문법 :  

클래스명 변수명 = new 클래스명();
Student sut = new Student();

 

7. 구성요소 접근

8. 은닉화 ( encapsulation ) 

객체지향 프로그래밍 3대 특징
   가. 상속( inheritance )
   나. 다형성 ( polymorphism )
   다. 은닉화 ( encapsulation )

 

9. 메소드 ( method ) 

용도 : 인스턴스 변수 값 설정 및 얻기
문법 :
 
 public 리턴타입 메소드명(인자) {
 return 값;  //호출한 곳으로 돌아갈 때 가지고 갈 데이터
 }          반드시 값의 데이터형을 리턴타입에 저장한다.
 - 특징 :
 - 반드시 클래스 객체생성 먼저
 - 반드시 호출해야 수행된다.


   수행이 끝나면 호출한 곳으로 돌아온다.
   ( return )

 -> 메소드안에서 선언되 변수인 로컬변수는
   메소드 호출시 생성되고 메소드가 끝나면 제거되는 임시 데이터
   저장용 변수이다. ( stack 메모리 )
 

10. 오버로딩 메소드 (overloading method)

11. 메소드 종류

12. 생성자 ( Constructor )

용도 : 인스턴스 변수에 값을 맨 처음 설정하는 역할 ( 초기화 작업 )
문법 :

 

 public 클래스명(인자){}
 

특징 : 메소드와 비슷하다.
리턴타입이 없다.
반드시 이름은 클래스명으로 지정한다.
호출해야 수행되고, 끝나면 돌아온다.
모든 클래스에는 자동으로 기본생성자를 제공한다.
(==> public 클래스명(){} )

생성자를 명시적으로 제공가능하다. 
단, 생성자를 명시적으로 사용하면 기본 생성자를 제공하지 않는다.
따라서 기본생성자는 항상 명시적으로 작성하자

  

가. worker 생성자 : public 클래스명(인자){}
나. caller 생성자 : new Student(); //콜러 생성자

 

====학습 세부사항 ====

 

1. 객체 ( objec )
객체란?
-> 주제가 바라보는 대상(사물)을 의미한다.
* 객체의 2가지 특성
a) 속성(attribut) : 객체를 표현하는 방법
b) 동작(operation): 객체의 행위를 의미

2. 객체지향 프로그래밍?
-> 현실세계의 객체를 이용해서 가상세계에서 표현하는 프로그래밍
개발방법을 '객체지향 프로그래밍'이라고 한다.

현실세계 ---------------> 가상세계
*객체 ------------------> 클래스
-속성 ------------------> 변수 (instance variable)
-동작 ------------------> 메소드

*객체관계 --------------> has a, is a 관계

3. 객체 추출
-> 어떤 어플리케이션을 하던지 필요한 객체를 추출하는 작업이 필요하다.
-> 필요한 것만 필터링하는 작업을 '추상화(abstraction)'라고 한다. 필요없는건 제거

분석  --->   설계    --->     구현    --->    테스트    ---> 배치
객체추출    다이어그램      소스코드
     ( 그림 )

4. 클래스 ( class )
- 문법 :
 public class 클래스명{ 
 }
- 클래스명은 첫글자 대문자, 의미있는 명사형으로 지정한다.
- 첫글자는 영문자로 지정하고 이후에 숫자지정가능하다.
  특수문자 2개 ( _ $ )만 사용가능하다
- 반드시 클래스명으로 파일저장해야 한다. ( 클래스명 = 파일명 ) 일치해야 한다.
<구성요소 3가지>
a) 인스턴스 변수 : 객체의 속성을 표현할 때 사용
b) 메소드 : 객체의 동작을 표현할 때 사용 , 인스턴스 변수를 관리할 때 사용한다.
     (변수에 값을 설정하거나 얻어오는 작업)
c) 생성자 : 인스턴스 변수에 값을 초기화하는 작업시 사용한다.

 예> 학생관리

 학생객체 -------------------------------------> Student
 - 학번, 이름 ,주소 ---------------------------> int snum;
       String name;
       String address;
 - 동작   -------------------------------------> 메소드

5. 클래스 종류 2가지

 가. 재사용 클래스 
 - 객체관련 클래스 , main 메소드가 없다.
 - 실행이 불가능하다. --> 핸들링 클래스를 통해서 사용이 가능하다.
 예> 학생객체, 컴퓨터 객체, ...

 
 나. 재사용 클래스를 핸들링하는 클래스 ( handling class )
 - main 메소드를 지정
 - 실행이 가능하다.

6. 객체생성 ( 인스턴스 화, 메모리 로딩 )
-> main메소드가 없는 클래스를 메모리에 올려주는 작업을 의미한다.

 문법 :
 클래스명 변수명 = new 클래스명();
 Student sut = new Student();

 * stu 변수
 - 변수
 - 참조형 변수 ( reference 변수 )
   위치값을 저장하는 변수
 - Student 클래스 타입의 변수

7. 구성요소 접근
  --> 객체생성후에 접근 가능하다.

 - 인스턴스 변수 ( 멤버변수 , 클래스 멤버 )
 ==> 참조형변수.멤버변수
 예) stu.snum = 1111;
     stu.name = "수지";
     stu.address = "청주";
  - 메소드 ( 벰버 메소드 , 클레스 멤버 )
   -> 용도 : 인스턴스 변수 값 설정 및 값 얻기

 - 생성자

8. 은닉화 ( encapsulation )

   a) 접근하는 곳

   b) 접근 당하는 곳
      -> stu.name = "수지";
         따라서 직접 접근하지 못하도록 private 로 설정한다.
  private int snum;
  직접접근은 못하고 다른 방법으로 접근한다.
  ( 메소드 이용 )
      예) 달력 객체
 public class MyDate{
  
  int day;
  int month;
  int year;
 }
 MyDate d = new MyDate();
 d.day = 40; //문법적으로는 문제가 없지만 논리적으로 문제발생
 
 * 객체지향 프로그래밍 3대 특징
   가. 상속( inheritance )
   나. 다형성 ( polymorphism )
   다. 은닉화 ( encapsulation )


9. 메소드 ( method )

 - 용도 : 인스턴스 변수 값 설정 및 얻기
 - 문법 :
 
 public 리턴타입 메소드명(인자) {
 return 값;  //호출한 곳으로 돌아갈 때 가지고 갈 데이터
 }          반드시 값의 데이터형을 리턴타입에 저장한다.
 - 특징 :
 - 반드시 클래스 객체생성 먼저
 - 반드시 호출해야 수행된다.
   수행이 끝나면 호출한 곳으로 돌아온다.
   ( return )

 -> 메소드안에서 선언되 변수인 로컬변수는
   메소드 호출시 생성되고 메소드가 끝나면 제거되는 임시 데이터
   저장용 변수이다. ( stack 메모리 )
 <용도 2가지>
a) 인스턴스 변수에 값을 설정
- setter 메소드라고 한다.
- 메소드명은 set변수명(첫글자 대문자)으로 지정한다.
  예) String name;
      setName
      setSnum
      setAddress
b) 인스턴스 변수 값을 얻기
- getter 메소드라고 한다.
- 메소드명은 get변수명(첫글자 대문자)으로 지정한다.
  예) String name;
      getName
      getSnum
      getAddress
- 핸들링 클래스에서 값을 얻는다.

 아키텍쳐
 
 TestStudent                                Student
 
 0.Student 객체생성
  
  1. 호출              Stirng name;
  -------------------> public 리턴타입 getName(인자){

     return name;
         }
  2. 리턴
  <------------------- 

 - 호출방법
   가. 객체생성
    Student stu = new Student();

   나. 메소드 호출
    참조형변수.메소드명(인자);

    예) stu.getName();
 stu.getAddress();
 stu.getSnum();
  
 - 메소드 호출 방법
 : 반드시 메소드명과 인자(파라미터, argument)
   리스트가 일치해야 된다.
 : 인자 리스트
 갯수
 데이터형
 순서

 public void a(int x){  }
 public void b(String x){  }
 public void c(int x){  }

10. 오버로딩 메소드 (overloading method)
-정의 : 같은 클래스내에 동일한 이름의 메소드가 여러개 설정 가능하다.
같은 이름의 여러 메소드를 '오버로딩 메소드'라고 한다.

- 규칙 : argument list가 반드시 달라야 된다.

- 이유?
1) 재사용성
2) 서로다른 메소드를 관리하는 것보다 하나의 이름으로 관리하는것이 쉽다.

11. 메소드 종류

가. worker 메소드
    -> 일반적으로 메소드 지칭한다.
    -> public 리턴타입 메소드명(인자){  }
    -> 종류 2가지
       -setter 메소드
 public void set변수명(인자, 인자2){ }
       -getter 메소드
 public 리턴타입 get변수명(){
 return 값;
 }
나. caller 메소드
-> worker 메소드를 호출하는 메소드를 의미한다.
-> 객체생성후에 사용 가능하다

 예) Student stu = new Student();

 stu.setName("곽보근"); // caller 메소드 
 stu.setAddress("하복대");

 int s = stu.getSnum(); // getter 메소드
* 같은 클래스에서는 그냥 호출하면 된다.

예) getName();

12. 생성자 ( Constructor )

 - 용도 : 인스턴스 변수에 값을 맨 처음 설정하는 역할 ( 초기화 작업 )
 - 문법 :

         public 클래스명(인자){}
 - 특징 : 메소드와 비슷하다.
   리턴타입이 없다.
   반드시 이름은 클래스명으로 지정한다.
   호출해야 수행되고, 끝나면 돌아온다.
   모든 클래스에는 자동으로 기본생성자를 제공한다.
   (==> public 클래스명(){} )

   생성자를 명시적으로 제공가능하다.
   단, 생성자를 명시적으로 사용하면 기본 생성자를 제공하지 않는다.
   따라서 기본생성자는 항상 명시적으로 작성하자

   가. worker 생성자 : public 클래스명(인자){}
   나. caller 생성자 : new Student(); //콜러 생성자

13. 오버로딩 생성자
-> 하나의 클래스내에 동일한 생성자가 여러개 존재 가능하다.
-> 규칙 : argument list가 반

* 은행 프로젝트

- 고객, 직원, 계좌, 은행

- 계좌 객체 -----------------> Account
 : 계좌번호
 : 비밀번호
 : 잔액     -----------------> double balance;

 : 입금     -----------------> deposit 메소드
   출금     -----------------> withdraw 메소드

 : 생성자

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

JAVA(자바)에 필용한 유용한 응용프로그램들

 

 

자바란 객체지향 프로그래밍 언어 이며 여러개의 객체들을 만들고 그 객체들의 관계를 프로그래밍 으로 설정해 가는 것을 객체지향 프로그래밍 언어라고 합니다 .

자바를 통해 프로그래밍을 하게 되면 '.java' 라는 확장자를 가지게 되는데 이를 컴퓨터가 이해할 수 있는 기계언어로 변경해주는 'javac'라는 자바 전용 컴파일러를 사용한다고 합니다 . 컴파일링을 하게 되면 '.class' 라는 파일이 생성되고 이 파일을 자바 가상머신 (JVM) 을 통해 코드가 실행하고 이것이 바로 자바를 통한 프로그래밍 실행 순서입니다 .

  

JAM 에 대해서 설명을 드리자면 자바로 작성된 프로그램을 실행하기 위한 것으로 위에서 말한 것 처럼 자바로 작성한 소스코드를 컴퓨터가 이해할 수 있도록 번역해 주는 역할을 합니다 .

그렇다면 자바 프로그래밍을 하기 위해서는 자바 프로그래밍을 하기위해서 크게 두가지를 필수로 설치해야 하는데 바로 이클립스 와 JDK(JAVA Development Kit)입니다 .

이클립스 는 자바를 쉽게 사용하게 만들어 주는 툴킷 이며 JDK 는 자바 라는 언어를 컴퓨터에서 사용 가능하게 만들어주는 자바 환경도구 라고 하며

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

위의 주소에 접속하시면 JDK 를 다운 받으실 수 있습니다 .

다음으로 자바의 특징을 말씀드리면 자바는 썬 마이크로시스템즈의 제임스 고슬링 (James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이며 , 썬 마이크로시스템즈에서 무료로 제공하고 있으며 Java Virtual Machine)이라는 특수한 가상 머신이 필요한데 , 이 가상 머신은 자바 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킵니다 . 때문에 자바로 개발된 프로그램은 CPU 나 운영 체제의 종류에 관계없이 JVM 을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있으며 , 이 점이 웹 애플리케이션의 특성과 맞아떨어져 폭발적인 인기가 상승하고 있습니다 .

 

 



  

끝으로 자바와 자바스크립트의 차이를 말씀드려보겠습니다 .  

1. 자바스크립트는 사용자 컴퓨터에 의해 인터프리트 (interpreted)되는 언어이다 (마치 HTML 과 같이 ). 그러나 자바는 일단 서버측에서 컴파일해야 하고 , 프로그램의 실행은 사용자측에서 이루어집니다 .

2. 두 언어 모두 객체 지향적 언어이다 . 하지만 자바스크립트에는 상속성이나 클래스는 존재하지 않습니다 .

3. 자바스크립트는 HTML 코드에 끼워져서 (embedded)사용되지만 자바는 HTML 과 독립적으로 사용 가능하다 . 단 , HTML 을 이용해야 자바 프로그램에 접근할 수 있습니다 .

4. 흔히 루즈 타입 (loose type)이라는 변수형을 선언할 필요가 없다 . 반면에 자바는 항상 변수형을 선언해야 한다 . 이 경우 스트롱 타입 (strong type)이라 합니다 .

5. 자바스크립트는 동적 연결 (dynamic binding)이기 때문에 객체에 대한 참조는 실행시에만 한다 . 그러나 정적인 연결 (static binding)을 취하는 자바는 컴파일시에 객체에 대한 참조가 이루어집니다 .

6. 두 언어 모두 안전하다 . 그러나 자바스크립트의 경우는 HTML 코드에 직접 끼워져 있기 때문에 누구든지 볼 수가 있습니다 . 그러나 자바의 경우는 다르며 자바 소스 코드를 컴파일하면 바이트 코드로 불리는 클래스 파일이 생성됩니다 . 따라서 프로그램 작성자가 디렉토리 안에 소스 코드를 지워도 HTML 에서 부르는 것은 자바 클래스 파일이기 때문에 다른 사람이 그 소스를 보지 못한다는 점에서 차이가 있습니다 .

 

 

직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면  

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,



자바 기본 문법 자바 데이터형 Primitive Data Types

 

 

  

데이터형은 자바 언어가 처리 할 수 있는 데이터 종류를 의미한다.

자바에서는 아래와 같은 2가지의 데이터형(Data Type)이 있다.

◈기본 데이터형과 ◈참조 데이터형있으며 기본데이터형에는 다음과 같은 8개의 기본 데이터형이 있다.

논리형 (boolean / 1byte)

참과 거짓을 표현할때 사용하고 반드시 소문자 true, false 값 중 하나를 갖는다.

그러나 C언어처럼 0이나 1 값 또는 대문자로 표현되는 TRUE, FALSE 값은 갖지 못한다.

boolean result = false; boolean flag = true;

문자형 (char / 2byte)

반드시 하나의 문자를 가지며 16비트 유니코드 값을 표현한다.

(유니코드란 전세계의 문자를 표현 할 수 있는 언어 표현 방식으로 char unicode='\uC790'; 

이렇게 사용할수있으며 이것은 한글 '자'를 나타낸다. 인터넷에 검색하면 각 언어에 맞는 유니코드값을 찾을 수 있다.)

그리고 char 데이터형은 기본적으로 정수형에 속한다. 즉 문자가 정수형으로 변환될 수 있다.

int num = = 'A' + 1; //문자 A가 아스키코드값인 65로 변경되고 연산되어 num = 66이저장됨

char 값은 반드시 단일 따옴표를 사용해 표현한다.

char c = 'A';

정수형 (byte, short, int, long)

10진수, 8진수,16진수, 2진수로 표현 가능하며 int가 기본형이다.

그러므로 long형을 표현할때에는 정수값 뒤에 L 또는 L을 붙여 구분한다.

int age = 26; long num = 100L; //정수값에 명시적으로 L또는l을 붙이지 않으면 기본형인 int 데이터형을 의미

종류와 크기 

byte = 8bit / short -=2byte / int =4byte / long = 8byte 

실수형 (float, double)

소수점을 가진 숫자를 의미하며 double이 기본형이다.

그러므로 float형을 표현할때에는 실수 값 뒤에 F 또는 f를 붙여 구분한다.

double abc = 43.2; float xyz = 3.12F //실수값에 명시적으로 F또는 f를 붙이지 않으면 기본형인 double형을 의미

종류와 크기

float = 4byte / double = 8byte

정수형인 int와 실수형인 float 데이터형은 데이터 저장을 위한 메모리로 32bit를 사용하지만

기본적으로 실수형이 정수형보다 큰 데이터형으로 처리된다.

◈참조 데이터형

자바에서 사용 가능한 데이터형 중 8개의 기본형에 속하지 않는 모든 데이터형

(대표적으로 클래스, 배열, 인터페이스)

String name = "홍길동"; //String클래스 , 참조형 타입 String(문자열)은 4byte int[]arr = {1,2,3,4}; //int 데이터형 배열 Student stu = new Student("유관순", 17,"서울"); //Student 클래스

기본형 데이터타입

Boolean 1byte / char 2byte

byte 8bit / short 2byte / int 4byte /long 8byte

float 4byte / double 8byte

참조형 데이터타입은 모두 4byte

ex) String 4byte 

  

자바 기본 문법

   

논리형은 참과 거짓을 뜻하며 데이터 형변환이 불가능 하며 대소문자를 구분하기 때문에 대문자 TRUE, FALSE는 논리형이 아니다.

ex) return false ; 

문자형은 문자 한개를 저장할 수 있는 단일 문자형으로 ' (따옴표)로 감싸줘야 합니다.

ex) 'A', 'a'

정수형은 소수점이 없는 숫자를 표현하는 자료형이다.

정수형 데이터는 기본적으로 int형(4byte)로 표현된다.

long형 표현시 숫자뒤에 'l or L'을 붙여야 한다.

ex) 0, -1, -123, 123L, 123l

실수형은 소수점이 있는 숫자를 표현하는 자료형이다.

float형을 표현시 숫자뒤에 'f or F'를 붙여준다.

ex) 3.14f , 3.14F

  

◈자바의 레퍼런스 데이터형은 C의 포인터형과 비슷한 기능을 가지고 있다고 생각되지만 C의 포인터가 메모리에 직접 접근 할수 있는 반면 자바의 레퍼런스 데이터형은 메모리에 직접접근 할수 없다.

◈ 자바에서의 데이터형 변환

종류가 다른 데이터간에 연산이나 대딥을 하는 경우에 대입을 하는 경우에 한 종류의 데이터형이 다른종류로 변경되는 것을 의미한다. 

예) 모든 데이터가 INT 보다 작은경우 이항연산시 INT형으로 일괄적으로 바뀐다.

BYTE 데이터와 LONG 데이터를 연산하면 BYTE 데이터가 연산시에 LONG 형으로 자동으로 바뀌어 연산된다. 

◈ 캐스팅(CASTING)

자동으로 데이터 형변화이 일어나는 것과는 달리 "큰것을 작은것에 넣는것은 명시적으로 지시해야 한다." 이런 명시적인 지시를 캐스팅이라 한다.

예) byte b = (byte)2099; 이런경우 실제로 51이라는 엉뚱한 결과가 들어가게 됨

◈ 자바에서의 변수선언

C에서는 변수선언을 실행문이 나오기 전에 모두 선언되어야 하지만 자바에서는 블록 { } 으로 묶여있는 곳이면 어디서나 가능하다. 

    

 

 

◈ 자바의 데이터형

◈ 정수

◈ = byte (1byte) -128 ~ 127

◈ 파일 입출력, 네트워크 통신

◈ = short (2byte) -32768 ~ 32767

◈ 자바에서는 사용빈도가 없다 

◈ = int (4byte) -21억 4천 ~ 21억 4천

◈ Default

◈ = long (8byte)

◈ ==> int vs long

◈ int => default (10진법) 10, 20...

◈ long => 101, 10L

◈ 금융권

◈ 실수

◈ = float (4byte) : 10.5f, 20.0F

◈ 소수점 이하 6자리

◈ = double (8byte) : 10.5d, 20.0D => (d, D는 생략이 가능)

◈ Default

◈ 소수점 이하 15자리(건축)

◈ 문자

◈ = char (2byte) => multi-byte(unicode)

◈ 표현 : 'A', '홍'

◈ 0~65535

◈ 논리

◈ = boolean : true/false => 조건식

◈ 

◈ 크기 비교

◈ byte < short < int < long < float < double

◈ char(언제든지 정수형으로 변환이 가능하다)

◈ 자바변수 식별자

◈ 1) 알파벳이나 한글로 시작한다.

◈ 알파벳은 대소문자를 구분한다

◈ 2) 숫자 사용이 가능(단 앞에 사용할 수 없다.)

◈ 3) 특수문자 사용이 가능($ , _ )

◈ 4) 예약어(키워드)는 사용할 수 없다

◈ 예약어 : 자바에서 사용중인 단어

◈ EX) int, double ....

 

◈ 변수 : 단일 데이터를 저장하는 메모리의 이름

◈ => 수시로 값을 변경할 수 있다.

◈ 상수 : 단일 데이터 저장 => 값을 변경할 수 없다.(final)

◈ 변수 선언 방법

◈ => 데이터형 변수명 = 값

◈ EX) 정수 저장

◈ int a=10;

◈ a=20;

◈ final int a=10;

◈ a-20; ==> error

 

◈ 자바 개발자의 약속

◈ 1) 클래스명을 대문자로 시작한다.

◈ Student 

◈ 2) 상수는 모든 문자가 대문자이다.

◈ PI

◈ 3) 변수, 메소드는 소문자로 시작

◈ 단어가 두개일 경우에는 두번단어는 대문자

◈ fileName, firstName

◈ 4) 문장종료는 ';'

◈ 5) 들여쓰기

◈ 자바

◈ public class A {

◈ 코딩

◈ }

◈ c/c++

◈ public class A

◈ {

◈ 코딩

◈ }

◈ 

◈ 

◈/ 

public class 자바데이터형 {

  

public static void main(String[] args) {

// 정수 3개 저장

/◈int kor=85;

int eng=80;

int math=75;◈/

int kor=86, eng=80,math=75;

// 데이터형이 동일할 떄

/◈

◈ 첫번쨰 방식

◈ 1. 변수 선언

◈ 2. 값주입

◈ int a;

◈ a=100;

◈ 두번째 방식

◈ 선언과 동시에 값주입

◈ int a=100;

◈ 변수는 반드시 초기값을 주입해야 한다

◈ 

◈ C/C++ => 가장 첫줄에 변수 선언

◈ java => 원하는 위에서 변수 선언이 가능

◈/

// 출력

/◈

◈ system.out.println() : 화면 출력

◈ system.out.print() : 화면 출력

◈ system.out.pintf() : 화면 출력

◈/

System.out.print("이름은?");

System.out.print("홍길동입니다\n");

// ctrl + F11 = 실행

// ln : new line

System.out.printf("%-5d%-5d%5d\n",10,20,30);

/◈

◈ %d : 정수

◈ %c : 문자

◈ %f : 실수

◈ %s : 문자열

◈ 

◈ "%5d",10

◈ => ^^^10(5칸 사용 출력)

◈ "%-5d",10

◈ => 10^^^(5칸 사용 출력)

◈/

double d=10.56789;

System.out.println(d);

System.out.printf("%.2f\t",d);

System.out.println("\"홍길동\"");

/◈

◈ \t => tab(일정간격을 줄때)

◈ \n => new line (다음줄에 출력)

◈ \\ => \

◈ \" => "

◈ \' => ' (34page)

◈/

}  

}

 

 

직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면  

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

 



블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,