4.1 자바응용프로그램 분석
1. 주석
/* */
//
/**주석 */ —->Javadoc에서 생성된 Html 파일에서 사용
class의 main문을 java확장자의 이름으로 지정한다.
int c;—>클래스
public int add(int a, int b)–>괄호안은 메소드
main() 메소드
public static void main(String arg[]){ ”” }
*일반적으로 자바 응용프로그램은 amin() 메소드 내에 서 다른 클래스의 객체를 생성한 다음 그 객체에 메세지를 보내어 원하는 결과를 얻는다. args[]는 String클래스 배열로 받아드림
명령행 매개변수(command-line-argument): 프로그램 실행시 필요한 정보를 전달
x=Integer.parseInt(args[0]);
y=integer.parseint(args[1]);
–>args[]에 저장도니 데이터를 숫자로 사용하기위해
integer.parseint()메소드를 사용하여 변환
객체의 생성과 메시지 전달
Exam examobject = new Exam();//Exam()클래스를 생성하여 examobject로 만들어짐
sub=examobject.add(x,y);
System.out.println(“입력한 값의 합은” + sum + “입니다.”);
클래스이름.객체이름.메소드이름(메소드의 매개변수);
*println은 표준출력문
4.2 자바애플릿 프로그램 분석
애플릿 프로그램의 특징
-main()메소드가 없다.
-네트웍 환경에서 www 검색기에 의해 실행 가능
-JDK에서 제공되는 애플릿 뷰어에서 실행가능
-HTML코드내에서 애플릿 파일(*.class)호출
-작고 간단한 응용에 적합
import java.applet.*; //라이브러리 클래스
inport java.awt.*;
public class Example extends Applet{//java.applet.Applet를 상속해야만 사용가능
public void paint(Graphics g){//출력하려면, Graphics를 사용해야함.
g.drawString(“안녕하세요”,100,60);
}}
4.3 식별자와 예약어
-변수, 상수 ,메소드, 배열, 문자열, 사용자가 정의한 클래스나 메소드등을 구분할 수 있는 이름
-첫문자는 영문자, _,$ 사용가능
-길이 제한 없다.
-예약어 식별자로 사용할수 없다.
-대소문자 구분하여 사용
*식별자의 사용 관례
-클래스 이름은 대문자로 시작
-메소드, 변수, 배열, 문자열등의 이름은 소문자로 시작
*자바 예약어
abstract, boolean, break, byte, if, cast, instanceof, extends, implenment, interface, static, synchronized, throws,throw…..
*자바는 16비트 유니코드 사용
-세계 다양한 언어들을 지원가능
-유니코드는 ASCII코드 문자 집합을 포함
4.4 변수와 자료형
-변수 : 값이 저장된 메모리의 위치에 주어진 이름
변수를 사용하기 전에 반드시 선언하여야함
-자료형 : 기본자료형 : 기존의 언어에서의 자료형
정수, 실수 문자 논리값..
변수는 값을 가진다.
Call by value
참조자료형 : 배열, 문자열, 클래스, 인터페 이스등과 같은 자료형
변수는 주소를 가진다.
Call by reference
-자바의 기본자료형
cahr 16bit unicode
boolean 참/거짓
byte 부호를 가진 8비트
short 부호를 가진 16비트
int 부호를 가진 32비트
long 부호를 가진 64비트
float 부호를 가진 32비트
double 부호를 가진 64비트
4.5 형변환
-형변환(cast): 치역(targer type)에 정의역의 값을 배정할때 발생
확대변환 : 치역이 정의역 보다 넓어 값의 손실이 발생되지 않고 저장
예 8비트의 바이트 값을 32비트의 정수형으로 변환하는 경우
축소변환:명시적인 형변환 구분을 사용한다. 치역이 정의역 보다 좁아 값을 저장할수 없는 경우
예: 32비트의 정수 값을 8비트의 바이트 형으로 변환하면 정보의 손실 발생
int a;
byte b;
double d
b=(byte)a;
i=(int) d;
system.out.println(“int로”)–>소수점 이하 버림
4.6 연산자와 수식
단항연산자
operator op
op operator
i++
이항연산자
op1 operator op2
a+b
삼항연산자
a? b :d
관계연산자
>= <= !=
instanceof : op1 instanceof op2 op1이 op2의 인스턴스(객체)인경우
논리연산자
& 앞에것이 거짓이어도 모두평가
&&
|앞에것이 참이어도 모두평가
||
!
비트연산자
>>
<<
>>> 항상부호에 무관하게 0이 채워짐
& and
| or
^ xor
~ 비트단위 보수
+=
-=
*= /= %= |= ^= <<= >>= <<<=
삼항연산자
변수 = 조건수식1 ? 수식2 : 수식3
public class Arithmetic {
public static void main(String args[]){
int a=5,b=2;
int sum=a+b;
int sub=a-b;
int mul=a*b;
float div=a/b;
int mod=a%b;
a++;b–;
System.out.println(“a+b=” + sum);
System.out.println(“a-b=” + sub);
System.out.println(“a*b=” + mul);
System.out.println(“a/b=” + div);
System.out.println(“a%b=” + mod);
}
}
class Bitwise{
public Static void main(String args[]){
int a=2;
int b=5;
int c=a | b;
int d=a & b;
int e= a^b;
int i; int j;
i=a<<2;
j=b>>2;
System.out.println(“a=” + a);
System.out.println(“b=” + b);
System.out.println(“a|b=” + c);
System.out.println(“a&b=” + d);
System.out.println(“a^b=” + e);
System.out.println(“a<<2=” + i);
System.out.println(“b>>2=” + j);
}
}
class Ternarydown{
public static void main(String args[]){
int i=10;
System.out.print(“정수형 변수 i의 값은 ” + i + “이며”);
String str= (i % 2==0) ? “작수” : “홀수”;
System.out.print(str);
System.out.println(“입니다.”);
}
}
4.7 배열
-같은 종류의 데이터를 저장하기 위한 자료구조
-배열을 객체로 취급
1.배열의 선언
type array-name[];
type[]array-name
2.다차원배열선언
type array-name[][];
type[][]array-name;
3.배열의 생성
array-name=new type[size];
ex >
int two_dim[][]=new int[][];
tip : 자바의 배열은 한번 생성된 후에는 크기가 변할 수 없다.
1.Array.java
Class Arry {
public static void main(string args[]){
String weekly_days[]=new String[7];
weekly_days[0]=”월요일”;
weekly_days[1]=”화요일”;
weekly_days[2]=”수요일”;
weekly_days[3]=”목요일”;
weekly_days[4]=”금요일”;
weekly_days[5]=”토요일”;
weekly_days[6]=”일요일”;
System.out.println(“제일 좋아하는 요일은 ” + weekly_days[5] + “입니다.”);
}}
//배열은 0~7까지 선언.
2.AutoArray.java
class AutoArray{
public static void main(String args[]){
String weekly_day[]={“월요일”,”화요일”,”수요일”,”목요일”,”금요일”,”토요일”,”일요일”};
System.out.println(“제일 좋아하는 요일은 ” + weekly_days[5] + “입니다.”);
}}
3.TwoArray.java
class TwoArray{
public static void main(String args[]){
int two_arry[][]=new int[4][5];
int i,j,k =0;
for(i=0; i<4; i++)
for(j=0;j<5; j++){
two_arry[i][j]=k;
k++;
}
for(i=0; i<4; i++){
for(j=0;j<5; j++)
System.out.print(two_array[i][j] + ” “);
System.out.println();
}
}
}
4.Twoda.java
class Twoda{
public static void main(String args[]){
int twoD[][]=new int[4][];
twoD[0]= new int[1];
twoD[1]= new int[2];
twoD[2]= new int[3];
twoD[3]= new int[4];
int i,j,k=0;
for(i=0;i<4;i++){
for(j=0;j<i+1;j++)
System.out.print(twoD[i][j] + ” “);
System.out.println();
}
}
5.ThreeDa.java
class ThreeDA{
public static void main(String args[]){
int threeD[][][] = new int[3][4][5];
int i,j,k;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<3;k++)
threeD[i][j][k]=i;
for(i=0;i<3;i++){
for(k=0;k<5;k++)
System.out.println((i+1)+”번째 2차원배열”);
system.out.println();
}
System.out.println();
}
}
}
———————-
4.8문자열(String)자바는 문자열을 String클래스의 객체로 구현
Ex> String str = “This is a Test”;
같은의미=String str=String””This is a Test”;
System.out.println(str);
int count=4;
System.out.println(“Counted”+ count + ” characters”);
*정수 4는 자동으로 문자열로 형변환