본문 바로가기

JAVA12

클래스와 객체 객체 지향 언어의 특성 캡슐화, Encapsulation 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것 객체는 캡슐화가 기본 원칙이지만 외부와의 접속을 위해 몇 부분만 공개 노출한다. 자바에서의 객체는 클래스라는 캡슐화를 사용하며, 필드(멤버 변수)와 메소드(멤버 함수)로 구성된다. 상속, Inheritance 자식 클래스가 부모 클래스의 속성을 물려받고 기능을 추가하여 확장(extends)하는 개념 부모 클래스를 슈퍼 클래스라고 부르고 자식 클래스를 서브 클래스라고 부른다. 상속은 슈퍼 클래스의 필드와 메소드를 물려받아 코드를 재사용함으로써 코드 작성에 드는 시간과 비용을 줄인다. 다형성, Polymorphism 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현되는 것 동.. 2022. 12. 29.
[JAVA] #11. 예외처리 error : 프로그램 코드에 의해 해결되기 힘든 심각한 오류 exception : 코드에 의해 수습가능한 미약한 오류 # throw 예외를 고의로 발생시킴 이걸 썼으면 꼭 try catch문을 쓰거나 메서드에 throws를 붙여서 예외처리하도록 해야 함 RuntimeException : 프로그래머의 실수로 발생하는 예외 > try catch 필수 Exception : 사용자의 실수 등 외적요인에 의햄 > try catch 선택 ㅡ + 호출한 메서드로 예외를 전달 + 호출한 메서드에서 처리하도록 할떄 사용 //그니까 만약에 내가 어떤 메서드 sum을 정의 할 때 헤드에 throws nullException라고 붙였어 그러면 만약에 다른 메서드 (main) 에서 sum을 호출해서 쓰는데 sum 진행중에 s.. 2020. 11. 17.
[JAVA] #10. 제어자 + 추상클래스 + 인터페이스 > + 메서드에 static, abstract를 함께 쓸 수 없다. + 클래스에 abstract와 final을 동시에 사용할 수 없다. + abstract 메서드의 접근제어자가 private일 수 없다. + 메서드에 private과 final을 같이 사용할 필요가 없다. # 접근 제어자 $$$ 캡슐화 접근제어자의 필요성 + 외부로부터 데이터를 보호 + 외부에서는 불필요하고 내부적으로만 사용되는 부분을 은닉 # static + 멤버변수, 메서드, 초기화 블록 앞에 사용 + 클래스에 관련된 것, 공통적인 것 *static 멤버변수 : 모든 인스턴스에 공통적으로 사용되는 클래스변수가 된다. //클래스당 하나 : 클래스변수는 인스턴스를 생성하지 않고도 사용 가능하다. : 클래스가 메모리에 로드될 때 생성 *st.. 2020. 11. 17.
[JAVA] # 09. 상속 >> extends + 기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것 + 모든 클래스에 상속은 반드시 하나만 됨 (중복X) + 자손은 조상의 모든 멤버를 상속받음 (private, 생성자, 초기화블럭 제외) / 생성자는 별도로 필요 + 자손의 멤버의 개수는 조상보다 같거나 많아야 한다. + 공통 부분은 조상에서 관리하고 개별부분은 자손이 관리 + 조상의 변경은 자손에게 영향을 미치지만 반대는 아님 # 클래스의 관계 상속 관계 : ~은 ~이다. (is – a) 원은 도형이다. circle is a shape 포함 관계 : ~은 ~을 갖고 있다. (has – a) 원은 점을 가지고 있다. circle has a point / 상속이 안어울리는 관계 - 모든 클래스의 최고 조상 모든 클래스는 Obje.. 2020. 11. 12.
[JAVA] # 08. 클래스와 객체 + 클래스 : 객체를 정의해 놓은 것으로 객체를 생성할 때 사용 + 객체 : 실제로 존재하는 것 (사물 또는 개념) / 객체의 속성과 기능에 따라 다르다. (?) + 인스턴스 : 객체는 인스턴스를 포함하는 일반적인 의미이며 인스턴스는 객체를 생성하는데 사용된다. + 인스턴스화 : 클래스로부터 인스턴스를 생성하는 것(메모리 공간을 잡아주는 것) // 클래스를 인스턴스화 하면 객체가 됨 > - 객체는 속성과 기능으로 구성 속성은 변수로 기능은 메서드로 정의 인스턴스 생성 // Tv myTv; //객체를 다루기위한 참조변수 선언 myTv = new Tv(); // 객체 생성 후, 생성된 객체의 주소를 참조변수에 저장 참조변수는 하나의 인스턴스만 가리킴; 하나의 인스턴스는 여러개의 참조변수를 가질 수 있음 반복.. 2020. 11. 11.
[JAVA] # 07. 배열 드. 디. 어. 시험 끝> 1)과 2)를 한번에 선언할 수 도 있다. 이렇게 int intArray [] = new int [5]; ※ 주의 사항 - 배열 선언 시 [ ]에 크기를 입력하면 컴파일 오류! 배열의 크기는 배열 생성할 때!!! - 배열 선언시에 레퍼런스 변수와 [ ]의 위치는 바꿀 수 있다. int intArray []; //(O) int [] intArray; //(O) - 배열의 인덱스는 음이 아닌 정수만 가능하다. - 배열을 생성하지 않으면 값을 대입할 수 없다. int showError []; //배열에 대한 레퍼런스만 생성 showError[1] = 6; //생성되지 않은 배열을 사용하였으므로 에러남 + 배열의 초기화와 배열의 원소 다루기 - 배열의 초기화 ** 처음 배열을 int .. 2020. 11. 5.
[JAVA] 06. continue + break 지난번에 반복문을 정리하면서 반복문의 흐름을 바꿀 때, 특히 무한루프에서 continue 와 break 을 활용한다고 했다. 이번에는 continue 와 break 을 활용을 자세히 보자. # break 하나의 반복문을 탈출할 때 사용한다. 반복한다 특히 무 한 루 프 에서 many 활용 # continue continue문은 반복문을 빠져나가지 않으면서 다음 반복으로 넘어가고 싶을 때 사용한다. 무슨말인지 감이 잘 안 올텐데 에제를 보며 언 주로 활용하는지 알아보자. 오늘 활용할 예제는 사용자가 주문을 그만하겠다는 보기를 고를때까지 메뉴판을 반복적으로 보여주는 무한 반복문이다 break와 continue을 활용하여 코드를 구성해보자. 먼저 continue를 활용함에 중심을 두고 코드를 짰다. conti.. 2020. 10. 5.
[JAVA] 05. 반복문 for + while + do-while 접은 글이 더보기로 보이는 줄은 몰랐는데 ㅋㅋㅋㅋㅋㅋㅋㅋ 티스토리의 길은 멀고도 멀구나...ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ................................................................................................................................................................................................................................................... 어떤 결과를 도출 할 때 같은 코드 혹은 숫자만 다른 똑같은 연산을 반복해야 할 때가 있다. 같은 문장을 여러번 쓰면 손만 아프고 비효울적이니까 이럴땐 반복문을 사.. 2020. 9. 25.
[JAVA] 04. Scanner + 자바 입력 음 무슨 예제를 하려 해도 일단은 입력이 되야 완성도 있는 예제를 쓸 수 있으니까~ Scanner 부터 해보자 가장 처음에 자바가 객체지향 언어라고 하면서 블럭블럭을 모아 전체 프로그램을 만든다고 했었다 입력 역시 입력을 받는 블럭을 생성하여 사용하는데 바로 이 블럭이 System.in 라고 표준 입력 스트림 객체라 하며 키보드 장치를 제어하고 키 입력을 받는다. 하지만 System.in은 입력을 바이트 데이터로 받이들이므로 우리는 사용하기 쉽게 Scanner 클래스를 함께 사용한다. (* 클래스 : 객체의 기본 틀, 클래스를 이용하여 사용할 객체를 생성한다. 자세한 건 나중 포스팅에...) 자 이제 Scanner클래스를 쓰려면 내가 사용하겠다고 선언해야하는데 이때 사용하는 것이 'import' 이다. .. 2020. 9. 25.