언어 공부 내용 정리/Java 16

객지프 기말대비 정리 (6장)

java.lang 패키지에 속한 클래스모든 클래스는 강제로 object 클래스를 상속받음자바 클래스 계층구조의 최상위 클래스object클래스의 주요 메소드는 다음과 같다boolean equals(Object obj)obj가 가리키는 객체와 현재 객체 비교Class getClass()현 객체의 런타임 클래스 리턴int hashCode()현 객체의 해시코드값 리턴String toString()현 객체에 대한 문자열표현을 리턴(객체를 문자열로 변환)레퍼런스가 가리키는 객체의 클래스명 알고싶을땐 레퍼런스명.getClass().getName()String toStirng() : 각 클래스는 이 메소드를 오버라이딩하여 자신만의 문자열을 리턴할 수 있다//풀었던 족보 문제 (전화기) - getclass.getname..

객지프 기말대비 정리 (5장)

다시 풀어보기 : (x,y)의 한 점을 표현하는 point 클래스 구현(생성자 없이, x/y는 private)하고 이를 상속받아 색을 추가한 colorpoint 클래스 구현(역시 생성자 없고 color은 private) ->이를 활용하는 pointex 클래스 구현(실행 메소드 있는 클래스 -> point객체랑 colorpoint객체 하나씩 만들어서 점이랑 색 출력 +ppt기준 5-2,5-3 상속 : 부모클래스의 필드,메소드를 자식클래스가 물려받음부모 클래스 = 슈퍼 클래스 / extends 키워드 사용다중상속 지원 x (부모 하나에 자식 여러명은 되지만 자식 하나에 부모가 여럿인건 안됨)생성자는 상속 대상에서 제외됨 서브클래스는 서브클래스 멤버와 슈퍼클래스 멤버 모두를 갖고있다 ! 슈퍼클래스 멤버가 pr..

객지프 기말대비 정리 (3-4장)

배열 : 같은 타입의 데이터들이 인덱스와 함께 저장된 자료구조인덱스는 0부터 시작배열 선언과 생성 ; int [] array = new int [5]; -> 좌변은 선언만 한거(레퍼런스 변수(주소값)만 선언하고 실제 배열은 아직 생성 안된거, 우변 코드까지 써야 실제 배열이 생성됨)배열 선언과 동시에 초기화 : int [] array = {1,2,3,4};하나의 배열을 다수의 레퍼런스가 참조 가능 : int []myArray = array; 양수 5개를 배열에 입력받아 최댓값 출력하는 예제 처음엔 인덱스0에선 무조건 max 에 array[0]을 대입하고 그 뒤로 비교해야한다고 생각했는데 max에 0을 넣어놓으면 그냥 다 비교로 처리해도 되는거였다 배열의 크기 -> length필드for-each 문 : f..

객지프 중간대비 복습자료

자바에서 메소드는 클래스 바깥에 작성할 수 없음기본타입 vs 레퍼런스 타입 : 기본타입은 메모리 공간에 변수 공간이 생기면서 값이 바로 같이 대입되는 반면, 레퍼런스 타입은 메모리에 값이 바로 저장되는게 아니라 주소값이 저장되고 그 주소값으로 찾아 들어가야 실제 값이 저장되어 있는 형식문자타입 : char(2바이트) 정수타입: byte(1바이트, -128-127), short(2바이트, -32768-32767), int(4바이트), long(8바이트, 리터럴 뒤에 L붙여야함) / 정수의 기본 컴파일 타입은 int실수타입 : float(4바이트, 리터럴 뒤에 f붙이기), double(8바이트) / 실수 기본 컴팡리 타입은 double문자열 연결에는 더하기 연산자 사용이 가능함변수의 선언과 할당(초기화) 구..

자바 BufferedReader BufferedWriter : 빠른 입출력 (ing)

BufferedReader 자바에서 처음 배우는 입력은 Scanner를 통한 입력인데, scanner은 spaca와 enter를 모두 경계로 인식하기 때문에 입력받은 데이터를 가공하기엔 편리하지만, 작업 속도나 메모리 면에서 비효율적이다 (실제로 경험상 백준을 풀 때 많은 양의 데이터를 입력 받는게 아님에도 bufferedreader를 사용한 코드와 scanner를 사용한 코드의 런타임이 꽤 차이난다) BufferedReader는 버퍼를 사용해서 읽기를 한다 : 버퍼를 사용하지 않는 입력은 키보드의 키를 누르는 즉시 프로그램에 입력값이 전달되는 반면, 버퍼를 사용하는 입력은 키보드에 입력이 들어오면 버퍼에 전송이 되고 버퍼가 가득 차거나 개행문자가 나타났을 때 한번에 입력값을 프로그램에 전달한다 / 키보..

자바 예외처리

예외 : 실행 중 오동작이나 결과에 악영향을 미치는 예상치 못한 상황 발생예) 정수를 0으로 나누는 경우, 배열의 크기보다 큰 인덱스로 배열의 원소를 접근하는 경우, 정수를 읽는 코드가 실행되고 있을 때 사용자가 문자를 입력한 경우 등 이러한 예외는 컴파일 오류와 달리 실행 중에 발생하고, 이를 자바 플랫폼이 가장 먼저 알게되어 현재 실행중인 자바 응용프로그램에게 예외를 전달하여 프로그램이 이에 대응하게 한다. 만약 응용프로그램에 예외에 대처하는 코드가 작성되어 있지 않다면 자바 플랫폼이 응용프로그램을 강제로 종료시킨다 ( exception in thread~~ 메세지를 띄움) 예외 처리 : 예외에 대해 개발자가 작성한 프로그램 내에서 대응하는 것 1. try - catch - finally 문 try ..

자바 객체지향(2) (ing)

초기화와 생성자 생성자 (constructor) new 연산자를 통해서 인스턴스를 생성할 때 반드시 호출이 되고 제일 먼저 실행되는 특별한 메소드멤버필드를 초기화하는 역할을 한다생성자의 이름은 클래스 이름과 동일하게 작성한다만약 사용자가 작성하지 않으면 자동으로 default constructor가 생성된다 : 매개변수의 종류나 개수를 다르게 오버로딩해서 생성자를 여러개 만들 수 있는데, 기본 생성자 외에 다른 생성자를 하나라도 만들게되면 자동으로 만든 기본 생성자를 없애므로 생성자를 여러버전 만들 때에는 기본 생성자도 추가해주어야 에러를 방지할 수 있다생성자에는 static, final 등의 지정어를 사용하지 않는다리턴하지 않기 때문에 리턴타입도 작성하지 않는다생성자는 상속되지 않는다생성자를 따로 지정..

자바 객체지향(1)

객체지향이란 객체지향 프로그래밍 = oop = objected-oriented programming -> 객체를 기반으로 프로그램을 작성하는 것 / 부품 객체를 먼저 만들고 이를 조립하여 최종 프로그램을 만드는 기법 객체지향의 특성 1) 부품화 메소드라는 부품을 이용하여 하나의 완제품인 프로그램을 만든다 이 때 메소드의 관리를 위해 연관된 메소드와 그 메소드가 사용하는 변수들을 분류하고 그룹핑하는데, 이렇게 그룹핑한 대상이 객체이다 2)은닉화(캡슐화) 겉으로 보일 것만 빼놓고 보여줄 필요가 없는 부분은 정보보호를 위해 숨기자(정보은닉) -> 외부의 잘못된 접근으로부터 객체를 보호함 사용자 인터페이스에는 꼭 보여줘야하는 것들만 꺼냄 외부 객체는 객체 내부 구조를 알지 못하며 객체가 노출해 제공하는 필드와 ..

자바 메소드

메소드 형식 접근지정자 리턴타입 메소드이름 (메소드 인자들) { //메소드 코드 바디 } ex)public (static) int getSum(int i.int j){ int sum; sum = i+j return sum; } 접근 제한자 public : 클래스 내부,외부에서 모두 호출 가능,모든 패키지에서 사용 가능 / 필드와 메소드가 public이면 클래스도 public이어야 한다 주의 : public 을 붙였다고 해서 다른 패키지에서 public 메소드를 막 사용할 수 있는 것은 아니다 ! 다른 패키지에서 public 멤버를 사용하려면 import 패키지명.클래스명; 을 위에 작성해주어야한다 import는 다른 패키지 내에 있는 클래스를 사용하겠다는 뜻이다 또한 메뉴 보이기는 리턴값이 int 인 메..