본문 바로가기

java/개념68

객체 지향과 자바 객체 지향 언어의 특성- 객체 지향 언어는 실세계의 객체를 프로그램 내에 표현하기 위해 클래스와 객체 개념을 도입 1. 캡슐화(Encapsulation): 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것- 객체의 본질적인 특징- 외부의 접근으로부터 객체를 보호클래스(class): 자바에서 객체는 클래스라는 캡슐을 사용필드(멤버 변수)와 메소드(멤버 함수)로 구성 객체클래스의 모양대로 생성된 실체(instance)객체 내 데이터를 보호, 외부 접근 제한2. 상속(Inheritance): 상위 객체의 속성이 하위 객체에 물려짐- 하위 객체가 상위 객체의 속성을 모두 가짐- 자바에서는 자식 클래스(서브 클래스)가 부모 클래스(수퍼 클래스)의 속성을 물려받고 그 기능을 확장 3. 다형성(Polymorp.. 2024. 5. 11.
오름차순/내림차순 정수 정렬 다들 뭔가 멋있게 정렬하던데 나는 버블정렬밖에 모른다//버블정렬int[] intArray = {7, 2, 10, 4, 8, 3, 1, 9, 5, 6};int i, j, temp;for(i=9; i>0; i--){ for(j=0; jintArray[j+1]){ //앞 원소가 뒤 원소보다 크면 앞 원소를 뒤로 보내야 됨 temp=intArray[j]; intArray[j]=intArray[j+1]; intArray[j+1]=temp; } }}for(i=0; i 더 멋있게 정렬하고 싶으므로 Arrays.sort()를 사용해 보겠다 java.util.Arrays 클래스의 sort() 메소드를 사용하는 것이다. 해당.. 2024. 5. 11.
래퍼 클래스(wrapper class) 8개의 기본 타입(byte, short, int, long, char, double, float, boolean)을 객체로 다루기 위해 JDK에 만들어진 8개의 클래스를 통칭하여 Wrapper 클래스라고 함기본 타입Wrapper 클래스byteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDoublebooleanBooleanWrapper 클래스의 객체 생성- Wrapper 객체는 기본 타입의 값을 인자로 하여 정적 메소드인 valueOf()를 호출하여 생성- Character를 제외한 나머지 Wrapper 클래스의 경우, 문자열로 Wrapper 객체 생성 가능Integer i = Integer.valueOf(10); //정수 10의 객체화Ch.. 2024. 5. 11.
예외 처리 예외(Exception): 오동작을 일으키거나 결과에 악영향을 미칠 수 있는 오류- 문법에 맞지 않게 작성된 코드는 프로그램 실행 전 컴파일러에 의해 컴파일 오류로 걸러짐- 예외는 프로그램 실행 중에 발생- 정수를 0으로 나누는 경우, 배열의 크기보다 큰 인덱스로 배열에 접근하는 경우, 존재하지 않는 파일을 읽는 경우 등- 실행 중 예외가 발생하면 자바 플랫폼이 실행 중인 응용프로그램에 예외를 전달- 응용프로그램이 예외에 대처하는 코드를 가지고 있지 않다면 자바 플랫폼이 응용프로그램을 종료 예외 처리, try-catch-finally문 - 예외가 발생했을 때 대응하는 응용프로그램 코드- try-catch-finally문 사용 try{ 예외가 발생할 가능성이 있는 실행문(try블록)}catch(처리할 예외.. 2024. 5. 10.
main() 메소드 main() 메소드- 자바 응용프로그램의 실행 시작 메소드 main()의 원형- 반드시 static- 반드시 public main() 메소드의 특징 1. public- public 접근 지정자는 해당 메소드가 다른 클래스에서 호출 가능함을 나타냄- 자바 응용 프로그램이 실행을 시작할 때 자바 가상 기계(JVM)에 의해 호출되어야 하므로 public 속성으로 선언 2. static- 객체가 생성되기 전에 호출되므로 static속성으로 선언 3. void 타입으로 리턴- 아무 값도 리턴하지 않으므로 void 타입- main()메소드를 끝내기 위해 리턴하려면 return;문을 사용 4. 문자열 배열(String [])이 매개변수로 전달- 명령행에 입력된 인자들을 문자열 배열로 만들어 main()메소드에 전달m.. 2024. 5. 10.
메소드에서 배열 리턴 메소드에서 배열을 리턴하면 배열 공간 전체가 아닌 배열에 대한 레퍼런스만 리턴됨- 레퍼런스만 리턴하므로 리턴 타입을 선언할 때 [ ]안에 배열의 크기를 지정하지 않음- 리턴하는 배열 타입이 리턴받는 레퍼런스 변수 타입과 일치해야 함int[] intArray; //리턴받을 makeArray()의 리턴 타입과 동일한 타입 선언intArray = makeArray(); //makeArray() 메소드가 리턴하는 배열을 받음- intArray는 makeArray()가 만들어 리턴한 배열을 가리키게 되므로 intArray로 배열 원소에 접근 가능 + 2차원 배열을 리턴하는 메소드와 배열을 리턴받는 코드int[][] make2DArray(){ return new int[3][4]; //2차원 배열 생성 및.. 2024. 5. 8.