[CS] 정보처리기능사 실기_04.Java
본 문서는 정보처리기능사 실기 시험 대비용 필기입니다
Java
객체지향 프로그래밍 언어 중 하나, 프로시저보다는 명령과 데이터로 구성된 객체를 중심으로 하는 프로그래밍 기법
- 분산 네트워크 환경에 적용이 가능
- 멀티스레드 기능을 제공하므로 여러 작업을 동시에 처리할 수 있음
- 운영체제 및 하드웨어에 독립적이며, 이식성이 강함
Java의 기초
- 아무리 작은 프로그램이라도 클래스 안에 속성(변수)와 메소드(함수)를 만들어서 실행
실행용으로 만든 클래스 안에 main() 메소드가 있어야한다
- 표준 출력 : System 클래스의 서브 클래스인 Out 클래스의 메소드 print(), printIn(), printf() 등을 사용
System.out.printf(서식 문자열, 변수): 서식 문자열에 맞게 변수의 내용 출력System.out.print(): 값이나 변수의 내용을 형식없이 출력System.out.println(): 값이나 변수의 내용을 형식없이 출력한 후 커서를 다음 줄의 처음으로 이동
배열과 반복문
- Java에서는 배열을 객체로 취급
- heap 영역에 객체를 생성하고 생성된 객체가 있는 곳의 주소를 객체 변수에 저장(동적 할당)
- Java에서는 주소를 제어할 수 없기 때문에 객체 변수를 생성한다고 이해
public class Example{
public static void main(String[] args)
{
int a[] = new int[5];
int i;
for(i = 0; i < 5; i++)
a[i] = i + 10;
for(i = 0; i < 5; i++)
System.out.printf("%4d", a[i]); // 10 11 12 13 14
int[] b = {90,100,80,70,60,50,30};
int sum = 0;
float avg;
for (int i : b)
sum += i;
avg = (float)sum / b.length;
System.out.printf("%4d, %4.2f", sum, avg); // 480, 68.57
}
}
문자열
문자열 처리 클래스
String사용
public class Example{
public static void main(String[] args){
String str = "Information!";
int n = str.length();
char[] st = new char[n];
n--;
for (int k = n; k >= 0; k--){
st[n-k] = str.charAt(k);
}
for (char k : st)
System.out.printf("%c", k); // !noitamrofnI
}
}
Java의 활용
클래스와 함수
클래스 : 객체 생성을 위한 필드(속성)와 함수(메소드)를 정의하는 설계도
객체 : 클래스에 의해 정의되고 설계된 내용을 기반으로 생성된 모든 대상.속성과 기능을 가짐
class ClassA{
int a = 10;
int funcAdd(int x, int y){
return x + y + a;
}
}
public class Test{
public static void main(String[] args)
{
int x = 3, y = 6, r;
ClassA cal = new ClassA(); // 객체 생성 예약어 new
r = cal.funcAdd(x,y);
System.out.print(r); // 19
}
}
class ClassA{
ClassA(){
System.out.print('A');
this.prn(); // 자신이 속한 ClassA 클래스의 prn 메소드를 호출, ClassA 클래스의 prn() 메소드는 ClassB 클래스의 prn() 메소드에 의해 재정의 됨
}
void prn(){
System.out.print('B');
}
}
class ClassB extends ClassA{
ClassB(){
super(); // 부모 클래스의 생성자를 호출
System.out.print('D');
}
void prn(){
System.out.print('E');
}
void prn(int x){
System.out.print(x);
}
}
public class Test{
public static void main(String[] args){
int x = 7;
ClassB cal = new ClassB();
cal.prn(x); // AED7
}
}