전체 글
-
[JAVA] 이클립스 디버깅 하는 법 알아보기프로그래밍 언어/JAVA 2022. 7. 29. 12:19
디버깅이란? 디버깅이란 대부분의 경우 코드에서 버그를 제거하는 것을 의미한다. 오타를 찾는 코드를 검사하거나 코드 분석기를 사용하여 디버그할 수 있다. 그럼) 이클립스에서 디버깅하는 방법에 대해 알아보자. 1. BreakPoint 지정하기 디버깅을 진행하려면 가장 먼저 해야하는 일이 브레이크 포인트를 지정해주는 일이다. 오류가 의심가는 라인 넘버가 적혀있는 좌측을 더블클릭 하거나 마우스 우클릭으로 Toggle BreakPoint를 클릭해서 지정할 수 있다. 2. 디버그 실행하기 상단바에 RUN 버튼 좌측 벌레 모양 아이콘을 클릭하거나 Run - > Debug ( F11)을 누르면 디버그 모드가 실행된다. 아이콘을 누르면 화면을 전환하겠냐는 메시지창이 뜨는데 Switch 버튼을 클릭하면 된다. 디버그 모드..
-
[ch7 자바 객체] 내부 클래스(inner class)와 익명 클래스(anonymous class)프로그래밍 언어/JAVA 2022. 6. 22. 21:12
내부 클래스(inner class) 내부 클래스는 클래스 내에 선언된 클래이다. 내부 클래스의 장점으로는 2가지가 있다. 1. 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. 2. 코드의 복잡성을 줄일 수 있다. (캡슐화) 왼쪽의 A와 B 두 개의 독립적인 클래스를 오른쪽과 같이 바꾸면 B는 A의 내부 클래스(inner class)가 되고 A는 B를 감싸고 있는 외부 클래스(outer class)가 된다. 내부 클래스의 종류와 특징 내부 클래스의 종류는 변수의 선언위치에 따른 종류와 같다. 내부 클래스는 마치 변수를 선언하는 것과 같은 위치에 선언할 수 있으며, 변수의 선언위치에 따라 인스턴스 변수, 클래스 변수(static 변수), 지역변수로 구분되는 것과 같이 내부 클래스도 선언 위치에..
-
[ch7 자바 객체] 추상(abstract) 클래스와 인터페이스(interface)프로그래밍 언어/JAVA 2022. 6. 22. 15:24
추상 클래스(abstract class)란? 클래스를 설계도에 비유한다면, 추상 클래는 미완성 설계도에 비유할 수 있다. 미완성 설계도란, 단어의 듯 그대로 완성되지 못한 채로 남겨진 설계도를 말한다. 클래스가 미완성이라는 것은 멤버의 개수에 관련된 것이 아니라, 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미이다. 미완성 설계도로 완성된 제품을 만들 수 없듯이 추상 클래스로 인스턴스는 생성할 수 없다. 추상 클래스는 상속을 통해서 자손 클래스에 의해서만 완성될 수 있다. 추상 클래스 : 미완성 설계도, 인스턴스 생성 불가, 미완성 메서드(추상 메서드)를 포함하고 있는 클래스 추상 클래스 자체로는 클래스로서의 역할을 다 못하지만, 새로운 클래스를 작성하는 데 있어서 바탕이 되는 조상 클래스로서 ..
-
[ch7 자바 객체] 캡슐화(getter & setter)와 다형성(polymorphism)프로그래밍 언어/JAVA 2022. 6. 19. 16:49
접근제어자에 대한 설명은 클릭 [ch7 자바 객체] 패키지(package)와 import, 접근제어자(access modifier) 패키지(package)란? 패키지란, 클래스의 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리 wonisdaily.tistory.com 캡슐화에 대해 알아보기 전 접근제어자를 알고 넘어가야한다. 위에 포스팅 아래 부분에서 참고! 캡슐화란? 클래스나 멤버, 주로 멤버에 접근 제어자를 사용하는 이유는 클래스 내부에 선언된 데이터를 보호하기 위해서이다. 데이터가 유효한 값을 유지하도록, 또는 비밀번호와 같은 데이터를 외부에서 함부로 변경하지 못하도록 하기 위해서는 외부로부터 접근을 ..
-
[ch7 자바 객체] 패키지(package)와 import, 접근제어자(access modifier)프로그래밍 언어/JAVA 2022. 6. 17. 12:51
패키지(package)란? 패키지란, 클래스의 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능하므로, 자신만의 패키지를 유지함으로써 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다. 예를들어 String 클래스의 실제 이름은 java.lang.String이다. java.lang 패키지에 속한 String클래스라는 의미이다. 그래서 같은 이름의 클래스일 지라도 서로 다른 패키지에 속하면 패키지명으로 구별이 가능하다. 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리..
-
[자바 JAVA] 자동으로 import하는 꿀 방법프로그래밍 언어/JAVA 2022. 6. 17. 11:43
수업 들으면서 import 따라하면 되니까 크게 어려움을 못 느꼈는데 GUI나가면서 import 때문에 문제가 많이 생겼다. 이리저리 찾느라 시간이 많이 걸려 자동으로 import하는 방법을 찾아보고 편리해 적어볼까 한다. 1. 단축키 ctrl+shift+o 에러가 나는 문장 위에 마우스를 올리면 quick fixes available하고 에러 해결을 위한 추천 방법이 뜬다. 직접 클릭해서 하나씩 import해줘도 되지만 'ctrl + shift + o'를 누르면 간편하게 import 할 수 있다. 2. window -> preferences -> sava Actions 설정 window -> preferences 선택 후 검색창에 save Actionsㄹ 입력한다. 그 다음 perform the sel..
-
[ch7 자바 객체] 상속과 오버라이딩(overriding), super 알아보기프로그래밍 언어/JAVA 2022. 6. 16. 23:22
상속이란? 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하다면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 자바에서 상속을 구현하는 방법을 아주 간단한데, 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써주면 된다. 예를 들어 새로 작성하려는 클래스의 이름이 Child고 상속받고자 하는 기존의 클래스 이름이 Parent라면 아래와 같이 하면 된다. cclass Parent{ } class Child exte..
-
[메모리 구조] 힙(heap)영역과 & 스택(stack)의 차이IT/CS지식 2022. 6. 16. 16:10
메모리의 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load) 되어야 한다. 또한 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다. 따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 아래와 같다. 1. 코드(code) 영역 : 메모리의 코드(code) 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code) 영역이라고 부른다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다. 2. 데이터(data) 영역 : 메모리 데이터(data) 영역은 프로그램의 전역 변수와 정적(static)변수가 저장되는 영역이다. 데이터 영역은 프로그램의 시작과 함께 할당되며,..