class IfGrade
{
 /**
 매개변수로 점수를 받는다.0~100
 점수
 100~90 : 'A'를 return
 89~80 : 'B'를 return
 79~70 : 'C'를 return
 69~60 : 'D'를 return
 60 이하 : 'F'를 return
 */
 public char checkGrade(int jumsu){
 
  if(100>=jumsu && jumsu>=90){
   return 'A';
  }else if(jumsu<=89 && jumsu>=80){
   return 'B';
  }else if(jumsu<=79 && jumsu>=70){
   return 'C';
  }else if(jumsu<=69 && jumsu>=60){
   return 'D';
  }else {
   return 'F';
  }

 }
 public static void main(String[] args)
 {
  IfGrade grade = new IfGrade();
  char c1 = grade.checkGrade(92);
  char c2 = grade.checkGrade(42);
  char c3 = grade.checkGrade(82);
  System.out.println(c1+","+c2+","+c3);//A,F,B

 }
}


2.
class IfGrade
{
 /**
 매개변수로 점수를 받는다.0~100
 점수
 100~90 : 'A'를 return
 89~80 : 'B'를 return
 79~70 : 'C'를 return
 69~60 : 'D'를 return
 60 이하 : 'F'를 return
 */
 public char checkGrade(int jumsu){
 
  if(100>=jumsu && jumsu>=90){
   return 'A';
  }else if(jumsu>=80){
   return 'B';
  }else if(jumsu>=70){
   return 'C';
  }else ifjumsu>=60){
   return 'D';
  }else {
   return 'F';
  }

 }
 public static void main(String[] args)
 {
  IfGrade grade = new IfGrade();
  char c1 = grade.checkGrade(92);
  char c2 = grade.checkGrade(42);
  char c3 = grade.checkGrade(82);
  System.out.println(c1+","+c2+","+c3);//A,F,B

 }
}
3.

class IfGrade
{
 /**
 매개변수로 점수를 받는다.0~100
 점수
 100~90 : 'A'를 return
 89~80 : 'B'를 return
 79~70 : 'C'를 return
 69~60 : 'D'를 return
 60 이하 : 'F'를 return
 */
 public char checkGrade(int jumsu){
 
   char grade = ' ';
  if(100>=jumsu && jumsu>=90){
   grade = 'A';
  }else if(jumsu>=80){
   grade = 'B';
  }else if(jumsu>=70){
   grade = 'C';
  }else ifjumsu>=60){
   grade  = 'D';
  }else {
   grade =  'F';
  }
  return grade;

 }
 public static void main(String[] args)
 {
  IfGrade grade = new IfGrade();
  char c1 = grade.checkGrade(92);
  char c2 = grade.checkGrade(42);
  char c3 = grade.checkGrade(82);
  if(


  System.out.println(c1+","+c2+","+c3);//A,F,B

 }
}

* if 예외처리

class IfGrade
{
 /**
 매개변수로 점수를 받는다.0~100
 점수
 100~90 : 'A'를 return
 89~80 : 'B'를 return
 79~70 : 'C'를 return
 69~60 : 'D'를 return
 60 이하 : 'F'를 return
 */
 public char checkGrade(int jumsu){
 
 char grade = ' ';
  if(100>=jumsu && jumsu>=90){
   grade= 'A';
  }else if(jumsu<=89 && jumsu>=80){
   grade= 'B';
  }else if(jumsu<=79 && jumsu>=70){
   grade= 'C';
  }else if(jumsu<=69 && jumsu>=60){
   grade= 'D';
  }else if(jumsu<60){
   grade= 'F';
  }
     return grade;
 }
 public static void main(String[] args)
 {
  IfGrade grade = new IfGrade();
  char c1 = grade.checkGrade(92);
  char c2 = grade.checkGrade(42);
  char c3 = grade.checkGrade(82);
  char c4 = grade.checkGrade(150);

  
  System.out.println(c1+","+c2+","+c3);//A,F,B
  if(c4==' '){
  System.out.println("잘못된 잢이 들어갔습니다.");
  }

 }
}

 

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

반복분(for, while)  (0) 2012.07.28
switch문  (0) 2012.07.28
Data type, 연산자, 형변환  (0) 2012.07.28
제한자, 캡슐화, 변수, this  (0) 2012.07.28
객체지향(oop)이라면 알아야할 개념  (0) 2012.07.28
Posted by 조은성
,

1. Data type : Data(값)의 구분(종류)
               -> 기준 :  형태, 크기

   -① Primitive Data type(기본 data type)-(ex :  숫자, 문자..(1개의 값 표현밖에 못함))
   -② Reference Data type(참조 data type)-(ex : class(class가 type, 객체(instance) 가 값이된다.)(여러개의 값이 합쳐져 하나의 값을 표현))
       ->Reference Data type의 기본 값은 NULL이다.
(null은 아무 객체도 참조하고 있지 않다는 뜻이다.)
* null값가진변수.xxx->실행시 오류 발생.(Null pointer exception발생)
 
2.타입

①실수 - double(8byte) - 실수형의 기본 type->소수점이하 16자리까지 표현(더 정밀하게 표현한다)
       float(4byte)  - 값F, 값f(ex :  50.2F, 50.2f)->소수점이하 7자리까지 표현

②정수형 - byte(1byte)
  short(2byte)
  int(4byte) - 기본형(20억을 기준으로 사용을 결정한다.)
  long(8byte)


* 10.5->1.05x10->0.105e2
* 1600000000000000 ->16*10^14->16E14

③ 논리형(Logical) - 참/거짓->type은 boolean

   값 : true,false

④ 문자 - char(2byte) : 1글자를 값으로 가진다.
                 값은 ''으로 감싼다.
                 2byte-unicode 한글자
  '\uAOSB(<-유니코드 한글자) -> unicode 1글자(16진수로 나타남)

*escape문자
'\t' - tab
'\n' - enter
'\\' - \문자(역슬러시)
'\'' - '
"\"" - "

3.String - 문자열(0~n글자)을 위한 Data type
         ->class -> Reference Data type
         - new 생성자() 하지 않고 객체 생성

* 사용:

1.변수 = "문자열";
  String s = "ABCDE";
2.변수=new String("문자열");
  String s = new String ("ABCDE");

* 두개의 문자열이 같은지 비교

boolean b = String객체.equals(비교String객체);
        b = "abs".equals("def");
 b = s1.equals(s2)l - s1,s2가 String type

* type이 다른 경우 작은 type 을 큰 type으로 바꾼후 계산한다.
* byte-short-int-long-float-double
      -char

*논리 연산자
- && ->and  true & true -> true 나머진 다 false   (&하나짜리는 뒤에도 검사, &&뒤에짜리는 하나가 참이면 바로 검사를 멈추고 나온다)
- || ->or   false | false ->false 나머진 다 true  (|하나짜리는 뒤에도 검사, ||뒤에짜리는 하나가 참이면 바로 검사를 멈추고 나온다)
- ^->xor  true ^ false -> true
        false ^ true -> true

        t^t->false
        f^f->false
- !->not

!true->false
!false->true

* 조건(삼항)연산자

조건 ? 피연산자1 :  피연산자2;
->boolean- true면 피연산자 1을 쓰고 false면 피연산자 2를쓴다.

int a = (x<5)? 20 :  50;
x가 5보다 작으면 20을 a에 넣고 아니면 50을 넣어라.

* cast 연산자(형변환) :  값의 type을 변환 시켜주는 연산자

- primitive Data type 간의 형변환 가능
- Reference Data type 간의 형변환 가능

사용법 :  (type)값; (int)10.5;

*자동형변환 : upcasting( 작은 type->큰 type)

*명시적코딩 : down casting(큰type->작은type)
 (변수보다 값이 더 큰경우 명시적 형변환이 필요하다)
* primitive Data type에서 형변환을 하면 Data가 깨질수도 있다.

ex :
class TypeCasting{
 public static void main(String[] args)
 {
  
  int var1=10+20; 
  System.out.println("10+20 = "+var1);//String +int->String+String
  
  double var2 = 20+30+25.7;
  System.out.println("20+30+25.7 = "+var2);//String +int->String+String
  
  long var3 = 365L*365*365*365*365*365*5;
 //  long var3 = (long)365*365*365*365*365*365*5;
  System.out.println("365*365*365*365*365*365*365*365*365*365*5 = "+var3);
                //캐스팅 연산 - 대입연산시에만 주의
         boolean b = 'a'<5;
  System.out.println(b); //false나옴
  long I = 10;//(O)
 // int k = 20L;//컴파일 에러
  int l = (int)30L;
  System.out.println(k);//30나옴
  int h = (int)300000000000000000L; //
  System.out.println(h);//이러면 300000000000000000L이 값이 나오지 않음 따라서. 작은 값안으로 강제형변환 하는 것은 좋지 않음.
 }
}

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

switch문  (0) 2012.07.28
if문  (0) 2012.07.28
제한자, 캡슐화, 변수, this  (0) 2012.07.28
객체지향(oop)이라면 알아야할 개념  (0) 2012.07.28
this  (0) 2012.07.28
Posted by 조은성
,

1.제한자-①접근제한자(값을 변경, 조회)- 접근 범위를 정해줌.(ex :  public, protected, packagefriendly(아무것도 쓰지 않을경우), private)
         ②보통 제한자(final(한번 값을 넣으면 변경할 수 없음을 제한))


2.private에 접근하기 위해서 변경하는 메소드와 조회하는 메소드를 지원한다.(set(int a), get())

3. 캡슐화(은닉성, 정보 하이딩 기법)
- instance 변수의 접근제한자는 private로 하여 직접 접근하지말고 변수의 값을 변경하는 setter와 조회할수 있는
  getter메소드를 public으로 제공하라.
- setter구문 :  public void set변수명(매개변수 :  변수 type)  int age; public void setAget(int a){}
- getter구문 : public 변수 type get변수명(){}, public int getAget(){}
- boolean : 변수명을 is로 시작하라.

4. 변수

-Local variable : 메소드 안에 선언한 변수.(지역변수 Method variable)(매개변수도 local변수)
 ->사용범위 : 메소드 수행시. 선언부 실행~메소드 종료.
 ->외부에서 호출(접근)불가.
 ->실행 stack(excute stack) 메모리 영역에 저장.  stack 구조는 FILO구조를 가진다.( 먼저들어간게 나중에 나온다.)
 ->묵시적 초기화가 없다.
*객체는 heap영역에 저장.

*변수 = 값
① value(10,20,"ABC")
② 연산(10+20)
③ 변수 int i = 20;
        int j = i;
④ 메소드 호출문 int j = sum(10,20);//리턴값

*Local 변수는 자신이 선언되어 있는 블럭 내에서만 사용가능하다.
ex :

void go(){
 int i = 10;
 {
  System.out.println(i);(가능)
  int j = 20;
 }
 System.out.println(j);(에러)
}

 

5. 데이터 저장

- (실행)stack - 실행 중인 메소드의 local 변수(로컬변수에서 변수는 사용이 끝나면 없어 지므로 (실행) 스택이라는 말을 쓴다.)
- heap  - 객체가 저장.

6. this : 이것(①overloading constructor(생성자),
               ②현재 일하는 메소드, 생성자를 소유한 객체를 가리키는 Local 변수)
          -> 현재 일하고 있는 객체의 주소값을 가리킨다.
          -> instance 메소드나 생성자 호출 시 실행 stack 영역에 가장 먼저 올라간다.

 

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

if문  (0) 2012.07.28
Data type, 연산자, 형변환  (0) 2012.07.28
객체지향(oop)이라면 알아야할 개념  (0) 2012.07.28
this  (0) 2012.07.28
오버로딩(overloading)  (0) 2012.07.28
Posted by 조은성
,

* 객체지향(oop)이라면 알아야할 개념
1. 캡슐화 - 정보은닉
* 접근 제한자 (특정 데이터에 접근을 막아 버리는 것) : class, 메소드, 생성자, instance 변수, static 변수에 사용되는 제한자-> 호출의 범위를 제한하는 역할
-public(UML : +) : 접근에 제한이 없다. (공중화장실) :  UML에서는 +로 표현
-protected(UML : #)
-private(UML : -) : 객체 내에서만 접근 가능.(개인화장실 :  우리집 안에서만 쓸수 있음), 같은 클래스 내의 메소드에서만 접근이 가능하다
-package friendly : 제한자를 붙이지 않으면 package friendly이다.(default 접근제한자라고 부르기도 한다.)


2. 상속
3. 다형성

 

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

Data type, 연산자, 형변환  (0) 2012.07.28
제한자, 캡슐화, 변수, this  (0) 2012.07.28
this  (0) 2012.07.28
오버로딩(overloading)  (0) 2012.07.28
클래스, 생성자  (0) 2012.07.28
Posted by 조은성
,

* this([값,...]);
->생성자에서 overloading 된 다른 생성자 호출.
-생성자 구현부의 첫번째 실행문으로 들어와야 한다.
ex : 
-안되는 경우
Student(){
System.out.println("aaaa");
         this(10);
 }
-----------------------
-되는 경우
Student(){
this(10);
System.out.println("aaaa");
        
}
-----------------------

-this()의 사용
Student(String sid,String n,int a){
 studentId = sid;
 name = n;
 age = a;
}

Student(String sid,String n, int a, int g, int sy){
 /*
 studentId = sid;
 name = n;
 age = a;
 */
 this(sid,n,a);                    <----------------------this()는 이렇게 사용한다.(코드를 좀더 짧게 하는 거지 몰라도 된다).
//만약 new Student(sid,n,a);를 쓰게 되면 새로운 객체를 새로 하나 만든다는 것이고 this(sid,n,a);를 하게 되면 내부적으로 생성자를 불러만 오는 것이다.
 grade = g;
 schoolYear = sy;
}

 

Posted by 조은성
,

1.오버로딩-생성자 -매개변수가 다르다면 같은 이름의 메소드/생성자를 한 class안에 여러개 만들 수 있는 것
          -메소드


- 오류나는 코드(같은 코드내에는 같은 이름의 변수를 쓸수 없다.
int a = 10;
String a = "ABC";
-----------------

-이건 안됨.
void go(){}
void go(){}
-------------

-이건 됨(메소드 오버로딩)
void go(){}
void go(int a){}
-----------------

- class overloading
Student(){}
Student(int a){}
--------------------------

- 메소드 오버로딩을 하는 경우 :  같은 일을 하는데 매개변수(인수)가 다를 경우(이럴 경우 장점은 호출하는 사람이 메소드 이름을 하나만 알면된다.)
(동일하게 덧셈을 하는 경우)
int add(int a,int b){}
double add(double a,double b){}

(ex: System.out.println("aa", System.out.println(10), System.out.println(10.2));

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

객체지향(oop)이라면 알아야할 개념  (0) 2012.07.28
this  (0) 2012.07.28
클래스, 생성자  (0) 2012.07.28
editplus 다운로드 및 설치하기  (0) 2012.07.28
자바의 특징(키워드, 주석, 객체)  (0) 2012.07.28
Posted by 조은성
,

5.class

한 파일(ABC.java)에
class A{
 }
class B{
 }
로 저장을 하면 class파일은 A.class B.class 두개가생긴다.

6. 생성자(Constructor) - 객체가 생성될 때 한번 호출되어 실행되는 동작.객체가 생성되서 소멸될 때까지 딱 1번만 실행됨
- 호출 : new 생성자()

- 구문 : [제한자] class이름([매개변수,...]){구현}
- 제한자 : public, protected, private : 접근제한자
- return 타입이 없다.
- 이름 :  class 이름과 반드시 같아야 한다.
- 매개변수(parameter)는 0~n개 가질 수 있다.

- default 생성자 : class에 생성자가 한개도 없으면 compiler가 생성해 주는 생성자
구문 : public Class이름(){}

- 생성자 역할 :  instance Member 변수의 값을 초기화(처음 값을 대입)
- 객체가 소멸될때까지 계속 사용할 자원들을 생성.

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

this  (0) 2012.07.28
오버로딩(overloading)  (0) 2012.07.28
editplus 다운로드 및 설치하기  (0) 2012.07.28
자바의 특징(키워드, 주석, 객체)  (0) 2012.07.28
자바의 역사 및 설치하기  (0) 2012.07.28
Posted by 조은성
,

4.www.editplus.co.kr
에디트 플러스 다운하기
에디트 플러스 설정'
도구-사용자기본설정(사용자 도구)-> 추가->new program-> 명령 :  javac-> 명령 : C:\Program Files\Java\jdk1.6.0_31\bin\javac.exe
디렉터리 : 현재디렉터리

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

오버로딩(overloading)  (0) 2012.07.28
클래스, 생성자  (0) 2012.07.28
자바의 특징(키워드, 주석, 객체)  (0) 2012.07.28
자바의 역사 및 설치하기  (0) 2012.07.28
Java 설치 및 이론 정리  (0) 2012.06.20
Posted by 조은성
,

#자바의 특징
1.자바는 플랫폼만 만들어 두면 어느 O/s에서나 다 돌아간다.
2.자바는 객체지향 언어이다.

*객체란? 세상에 존재하는것 (ex : 눈에 보이는것 :  차, 사람, 책상.  관념적인것 : 사람, 계좌)

-객체-속성(attribute)
     |
     -동작(operation)

* 2012.2.22 3일차

1.키워드 - 예약어-> 언어차원에서 사용하기 위해 예약한 단어들.
(ex : class, public, int, double.......)

-자바에서는 참거짓을 true/false로만 표현한다. 0/1은 안된다.
-모든 키워드는 소문자다.

-식별자 이름규칙 : 1.알파벳,숫자(숫자는 두번째 글자부터 가능)
                   2.특수문자 중에는 _,$만 가능하다.
                   3.글자수는 무제한.
                   4.대소문자 구분
                   5.keyword는 식별자로 쓸수 없다.
                   6.class :  모두 소문자, 단어의 첫글자는 대문자
                   7.변수,메소드 :  모두 소문자, 두번째 단어부터 첫글자는 대문자
                   8.final 변수 - 한번 값이 할당되면 못바꿈, 모두 대문자, 단어_단어

2.주석
//한줄짜리 주석
/* */여러줄짜리 주석
/** */ JAVA doc주석

3. 공백 - space, tab, enter :  가독성을 높여준다. program에 영향을 미치지 않는다.
; -> 구문의 종료를 나타낸다.(마침표역할. 실행문의 종료)

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

클래스, 생성자  (0) 2012.07.28
editplus 다운로드 및 설치하기  (0) 2012.07.28
자바의 역사 및 설치하기  (0) 2012.07.28
Java 설치 및 이론 정리  (0) 2012.06.20
JAVA정리파일  (0) 2012.04.19
Posted by 조은성
,

1.JAVA의 역사(Sun microSystems에서 만듬)

96년도 1.0 버전
------------------1.2버전(이 시기에 엄청나게 많이 바뀌었음, 새로운 개념들이 많이 들어감, 자바의 틀을 잡음. JAVA2라고 부름

------------------1.5버전(이 시기에 엄청나게 많이 바뀌었음, 새로운 개념들이 많이 들어감, 프로그래머들의 요구사항이 많이 들어감.JAVA5라고 부름
현재 1.7버전까지 나옴

2.JAVA 기술군
applet-> 기본적인 움직임이 있는 웹문서

-JAVA ME(Micro Edition)-하드웨어를 기반으로 묵었음. 작은기계에 들어감(ex : 핸드폰)
-JAVA SE(Standard)-표준이 되는 것.PC(ex : 데스크톱(워드프로세서))
-JAVA EE(Enterprise Edition)-기업용 (웹과 프레임워크)

3. 자바 설치
JAVA를 실행하기 위한 프로그램(JRE)
JVM(JAVA VIRTUAL MACHINE) : 자바가상머신.하드웨어를 소프트웨어적으로 구현한것에 자바를 붙인것 (소프트웨어적으로 o/s와 h/w를 구현한것->JAVA program을 실행시켜주는 가상 플랫폼
API( Abstract Programming Interface) :  미리 만들어둔 코드.(라이브러리와 같다.) 자주사용되는 코드들을 미리 만들어 제공.

     O/S와 H/W를 합쳐서 플랫폼이라고 부르며 실행을 할수 있게 해주는 도구이다.
     -JRE(JAVA Runtime Enviornment) 실행환경은 JVM과 API를 합쳐서 말한다. == 자바플랫폼이라고도 부른다.
 JDK-|
     -개발 utility들
(JAVA Develoment kit(자바개발도구))

4.설치
JDK
http://www.oracle.com/index.html
여기서 Java SE 6 UPDATE 31을 받음
라이센스 access하고 windowsx86을 받는다 . 32비트일경우.

next로 설치

-jdk 설치후 환경설정 - name - value 쌍 형태(ex : 이름 =홍길동, 나이 = 20) key - value
시작-내컴퓨터-마우스오른쪽- 속성-고급시스템설정-고급-환경변수
새로만들기
1. 이름  :  JAVA_HOME
   값 :  JDK 설치 경로( C:\Program Files\Java\jdk1.6.0_31 )
2. 이름  :  path
   값 : JDK 설치경로/bin ( C:\Program Files\Java\jdk1.6.0_31\bin ) <-기존에 있는 것 그대로 두고 home키 눌러서 맨앞으로가서 붙여넣기 한 후 ;를 붙여준다.
새로만들기
3. 이름 :  classpath
   값 :  .;

* 2012.2.21 2일차
1. 컴파일드 방식은 빠르지만 interpred방식은 속도가 느리다.
-JAVA는 interpred방식의 프로그램이다.
-한번 만들면 어느곳에서든 그 소스가 돌아가야 한다.
src - 사람이이해하는 방식

 

|
| 컴파일
|
program - 기계가 이해하는(0,1)

2.자바 - 인터프리트방식(속도는 느리지만 플래폼이 독립적이다)
src - 사람(high level언어)
|-> file명.java(ex : HelloWorld.java)
|
|->컴파일 : javac file명.java
|
|->실행 : java class파일명

-실행시점(Runtime)->JVM이 이해하는 말로 만들어짐.
①class Loading - classfile을 메모리에 올리는 작업
②실행-> interpreted방식(실행,구문단위로 기계어로 변경 후 실행)

***컴파일-> class-> byte code-> JVM(byte code는 JVM이 이해하는 언어)

'프로그래밍 > JAVA프로그래밍' 카테고리의 다른 글

클래스, 생성자  (0) 2012.07.28
editplus 다운로드 및 설치하기  (0) 2012.07.28
자바의 특징(키워드, 주석, 객체)  (0) 2012.07.28
Java 설치 및 이론 정리  (0) 2012.06.20
JAVA정리파일  (0) 2012.04.19
Posted by 조은성
,