728x90

 

해당 클래스의 상속관계를 알아야할 때

어떤 상속관계인지 몰라 공식API문서 찾기 어려울 때나

알더라도 여러 카테고리 거쳐 찾는 번거로움을 느낀다면?

해당 메소드가 반환을 어떻게 하는지 궁금하다면?

 

이클립스에서 알고자하는 코드에 마우스 포인터를 올리면 뜨는 노란 툴팁보면

아래로 내려가면

Overrides : 상속관계를 알려주는 부분

returns : 반환타입을 알려주는 부분

가 있다

Overrides : toString() 메소드가 최상위 클래스인 Object를 상속했다는 의미이다. 즉, 부노는 Object 자식은 toString()

returns : 객체의 대표값 문자열로 반환한다는 의미이다.

어떤건 int정수로 어떤건 boolean으로 true/false로 반환하니 잘체크하면 많은 도움이 된다

 

 

728x90
반응형
728x90

이클립스에 뜨는 많은 영어와 문자들

그냥 지나치기 쉬웠을텐데 알아두면 유용한 팁이다

API문서에서 하나하나 찾을 번거로움을 덜고 코딩 중에 바로바로 이클립스에서 타입 확인하는 방법이다

 

 

해당 코드에 마우스 포인터를 올려두면 뜨는 노란툴팁에서

볼드되어 뜨는 가장 첫줄에 반환타입과 제네릭설정 되어있다면 제네릭이 뭘로 제한되어있는지도 알려주고 

해당 메소드나 클래스의 상속관계,경로 등을 알려주니 필히 체크하자

 

 

 

728x90
반응형
728x90

 

public : 접근제어자라 불림

파일명인 class명 앞에는 퍼블릭을 붙이며, 한번만 등장한다

 

 

클래스 Print랑 클래스명이자 파일명인 oop05를 이클립스에서 저장(컴파일) 했을 때,

자바 확장자 파일과 더불어 파일명 Print이고 확장자가 클래스인 파일도 같이 생성된다

즉, 하나의 자바파일에서 그 안에 클래스를 여러개 만들면 그 클래스 개수만큼 .class파일이 생성된다

이는 메인 파일 안에 다 넣어서 거대하게 만들 수도 있지만 따로 클래스만 떼어서 파일을 만들 수도 있다는 의미

  • 이클립스에서 새로운 클래스 만들 때, public static void main(String[] args) 체크를 안하고 클래스만 따로 만들어서 위와 같은 클래스 파일을 만들 수도 있는 것
  • 거대 프로젝트에서 협업할 때 이런 식으로 나눠서 할 수 있는 장점

 

 

※ 이클립스 Refactor 클래스타입 파일 만들기

[Refactor] - [Move type to New File]

사이드 클래스 부분만 따로 떼어서 파일화 시킴

 

 

리팩터 전

파일1개

// OOP 4.2. 클래스 - 형식

// 이클립스 [Refactor] - [Move type to New File]
//	사이드 클래스 부분만 따로 떼어서 파일화 시킴
//
class Print04_2 {
	public static String delimiter = ""; 
	public static void A() {
		// ... 1억줄 코드
		System.out.println(delimiter); // printA() 메소드 안에  delimiter가 없다면
		System.out.println("A");	   // 이 파일 클래스(메인 메소드 위에)에서 찾아서 사용
		System.out.println("A");	   // 
	}
	public static void B() {
		// ... 1억줄 코드
		System.out.println(delimiter);
		System.out.println("B");
		System.out.println("B");
	}
}
public class OOP04_2 {
	public static void main(String[] args) {
		
		Print04_2.delimiter = "----";	// 추가 경로지정 : 클래스명. 추가
		Print04_2.A();					
		Print04_2.A();	
		
		Print04_2.delimiter = "====";	
		Print04_2.B();
		Print04_2.B();			
	}
}

 

리팩터 후

파일 2개

public class OOP04_2 {
	public static void main(String[] args) {
		
		Print04_2.delimiter = "----";	// 추가 경로지정 : 클래스명. 추가
		Print04_2.A();					
		Print04_2.A();	
		
		Print04_2.delimiter = "====";	
		Print04_2.B();
		Print04_2.B();			
	}
}
class Print04_2 {
	public static String delimiter = ""; 
	public static void A() {
		// ... 1억줄 코드
		System.out.println(delimiter); // printA() 메소드 안에  delimiter가 없다면
		System.out.println("A");	   // 이 파일 클래스(메인 메소드 위에)에서 찾아서 사용
		System.out.println("A");	   // 
	}
	public static void B() {
		// ... 1억줄 코드
		System.out.println(delimiter);
		System.out.println("B");
		System.out.println("B");
	}
}

 

 

 

728x90
반응형
728x90

출처: <https://www.youtube.com/watch?v=sQEmlaNXJZk&list=PLuHgQVnccGMDkdt3N9tT0aZPZx5-Ri2jo&index=1>

 

JAVA method - 1. 수업소개

코드의 양이 많아지면 정리하고 싶게 될 것인데, 연관된 코드를 모아서 그루핑(grouping)하고 이름을 붙이면 이것이 함수(function)이고 자바에서는 메소드라고 부름

이미 만들어 놓은 메소드를 사용해서 똑같은 코드를 다시 작성할 필요 없이 재사용 가능

 

 


 

JAVA method - 2. 이미 익숙한 메소드

메인 메소드를 쓰면서 이미 메소드를 사용해옴

main도 메인이라는 메소드. 처음부터 끝까지 하나의 메소드

println()도 입력값을 모니터로 출력하는 메소드

math.floor(1.1)); // 내림 메소드. 1.1을 1.0으로

 


 

JAVA method - 3. 메소드의 기본 형식

반복되는 1억줄의 코드를 하나씩 변경해야한다면?

연관된 코드를 그루핑해서 이름을 붙이자(메소드 작성)

아래처럼 반복되는 코드를 따로 메소드를 만들어서 관리(수정)할 때도 편하고 코드도 줄어들어서 필히 사용해야할 기능

 

 

public static void printTwoTimesA() {

이 줄을 보고 자바는 이런 메소드 있고 이런 내용을 가졌구나 하고 기억해둠

 

 

System.out.println("A"); // 둘이 같은 코드

printTwoTimesA();
  • 여기서 코드수정시 이 메소드를 쓴 모든 코드에 적용되어 엄청난 생산성업

 

 

 

public class method010203 {
	public static void printTwoTimesA() {// 이 줄울 보고 자바는 이런 메소드 있고 이런 내용을 가졌구나
		System.out.println("-");		 // 하고 기억해둠
		System.out.println("A");		 // 여기서 코드수정시 이 메소드를 쓴 모든 코드에 적용되어 엄청난 생산성업
		System.out.println("A");
	}
	public static void main(String[] args) { // 여기 main도 메인이라는 메소드. 처음부터 끝까지
		System.out.println("hello"); // println도 입력값을 모니터로 출력해주는 메소드
		System.out.println(Math.floor(1.1)); // 내림 메소드. 1.1을 1.0으로
		
	
		// 1억번 반복
		printTwoTimesA();
//		// 1억번 반복
//		System.out.println("-");
//		System.out.println("A");
//		System.out.println("A");
//		// 1억번 반복
//		System.out.println("-");
//		System.out.println("A");
//		System.out.println("A"); // 이 반복되는 코드들을 위에 만들어둔 메소드 printTwoTimesA로 변경
		// 1억번 반복				 // 같은 일하게 된다
		printTwoTimesA();		
		// 1억번 반복
		printTwoTimesA();
		
		// 이클립스 refactoring 기능
		// 매소드로 만들기를 원하는 부분을 드래그 범위 지정-우클릭 refactoring 클릭-우측 extract method 클릭
		// 프리뷰 기능을 이용하여 어찌 바뀔껀지 미리 확인가능
	}

}

 

 

※ 이클립스 리팩토링refactoring : 메소드화 기능

이클립스 refactoring기능을 이용하면 해당 부분을 쉽게 메소드화 가능하다

[메소드로 만들기를 원하는 부분을 드래그 범위 지정] - [우클릭 refactoring 클릭] - [우측 extract method 클릭]

 

 - 프리뷰 기능을 이용하여 어찌 바뀔껀지 미리 확인가능

728x90
반응형
728x90

 

JAVA1 - 10. 디버거

 

<용어설명>

버그 bug : 의도치 않은 문제가 발생하는

디버그 debug

디버깅 debugging : 버그를 잡는 행위를 디버깅이라함

디버거 degugger : 디버깅할 사용하는 도구를 디버거

 

디버깅 할려면 프로그램을 멈춰야함

breakpoint : 멈추고 싶은 지정

breakpointer : 브레이크포인트의

 


 

이클립스 코드수 UI 더블클릭으로 생성 & 삭제

디버깅 실행 : 화면 상단 벌레버튼

 

누르고나면 perspective(우측상단) 벌레 아이콘 생기는데 디버깅 하기 좋게 화면이 바뀌는 템플릿 기능 같은

  - 화면 구성이 바뀌면서 어떤 변수의 값이 뭔지 하나하나 체크하기 쉽게 보여줌

 

 

 

좌측 상단에 디버깅할 필요한 커맨드들이고, 우측은 변수명과 값을 직관적으로 보여주는 UI

 

좌측상단 메뉴

step over 다음 줄로 넘어가서 디버깅

step into 해당 메소드가 어떻게 이루어있는지 자세히 있음

step return 스텝인투에서 밖으로 나가고 싶을 사용

terminate 디버깅 종료

 

우측상단 도형모양 누르면 원래 코딩하던 콘솔창으로 되돌아옴

728x90
반응형
728x90

맨 왼쪽부터 동그라미에 빨간색 x표시 뜬다. 컴파일시 에러난다는 의미이며,
위에를 클릭해보면 스샷처럼 오른쪽에 툴팁으로 어떤 에러가 떴는지 나오며
흰색 배너에 해결책이 제시되고, 그 오른쪽에 노란 배너에 해당 선택지들이 실제로 어떻게 코드가 바뀌는지
미리보여주기가 뜬다
int에 쳐진 위쪽 동그라미 안에 보면 옆은 빨간색으로 밑줄이 쳐져 있는데 이 또한 에러발생을 알려주는 표시이다
다만 주석해서 왼쪽에 x표시가 안뜬 것은 컴파일시에 문제가 없기 때문.


에러는 개발자에게 항상 맞닥드리는 부분이니 개발자가 되기 위해 공부를 막 시작했다면 꼭꼭 숙지해주자!!


728x90
반응형
728x90

절대경로(Absolute Path) & 상대경로(Relative Path)란?

 

리눅스,html 등등 여러곳에서 볼 수 있다고 하며,

필자는 주로 VS code 사용하면서 이 개념들이 나와서 궁금해서 

알아보게 되었다

 

 

1.절대경로(Absolute Path)

전체 경로를 기입하는 방식

c,d드라이브 같은 최상위 디렉토리까지 모두 포함된 경로

OS에서는 절대경로로만 인식이 가능

ex) D:\Dropbox\Developer\python\Workspace_Python\hello world.txt

 

 

2.상대경로(Relative Path)

현재 자신이 속한 디렉토리를 기준으로 작성된 경로

말그대로 상대적인 경로라 비교할 대상이 있어야하며 그 비교대상은 자신이 속한 디렉토리 

컴퓨터 안에서 기준이 되는 경로를 중심으로 절대경로가 구성되는 개념

OS가 상대경로를 인식할 수 있는건 기준이 되는 경로가 상대경로를 절대경로로 변환하여 OS에 전달하기 때문

ex) Workspace_Python\hello world.txt

    or ./../../ Workspace_Python\hello world.txt 식으로 /과.으로 앞 경로들이 생략된다

 

 

※ 상대경로 개발배경 ※

지정하고자 하는 파일의 경로가 자주 변경되는 상황이거나 루트 디렉토리가 서로 다른 OS을 다룰 경우,

매번 새로 경로지정을 해줘야 한다. 바꿔야할 양이 많다면 한숨이 절로 나올 것이다...

리눅스 같은 경우에는 윈도우와 달리 특정 디렉토리 액세스 할 때마다 풀경로를 다 적어줘야 한다고한다.

 

 

728x90
반응형
728x90

출처: <https://www.youtube.com/watch?v=UrbO_1sijvs&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=8>

 

[자바의 정석 - 기초편] ch1-13~16 이클립스 단축키, 자동완성기능, 주석

 

 

<이클립스 자주 쓰는 단축키>

ctrl+shift+L : 단축키전체 목록보기

ctrl+ +,-   : 화면 화대축소

ctrl+D  : 한 줄 삭제

ctrl+alt+down or up  : 행단위 복사

alt+shift+A  : 멀티컬럼 편집 : alt+shift+a누르고, 

shift 누른 상태에서 마우스로 선택할 컬럼들 좌클릭

                       (, 한글쓰면 행이 지워짐.영어만)

alt+up,down  : 행단위 이동

tab  : 들여쓰기

shift+tab : 내어쓰기(반대방향)

ctrl+i : 자동 들여쓰기

ctrl+/  : 주석처리(토글) : (마우스 드래그)행 선택 후 ctrl+/

                                (" " 사이에서는 주석이 작동x)

ctrl+space  : 자동완성 : (주석 안에서는 작동x)

 

 

이클립스 세팅

인코딩 방식 UTF-8로 변환해두기

안하면 파일 다 깨져서 난리남...

https://parkjye.tistory.com/35

 

※ 만약 윈도우 단축키랑 겹쳐서 작동안한다면?

이클립스 안에서 단축키 변경할

상단 windows - preferences - general - keys - 검색창에 copy lines - binding란에서 변경

 

※ 토글키(Toggle key)?

한번 누르면 동작이 되고 또한 누르면 동작이 해제되는

 

※ 자동완성 축약어 수정하고 싶을 때는?

상단 windows - preferences - java - editor - templates

 

 

 

 

 

[자바의 정석 - 기초편] ch1-17~19 책의 소스와 강의자료 다운로드, 소스파일 가져오기, 내보내기

강의 자료 확인

특히 플래쉬 파일들이 중요 개념들이 보고 이해할

 

 

다른 사람 혹은 외부 자바 코드를 받아와야서 등록시키고 싶다면?

Package Explorer창에서 곳에 우클릭 - import - General - Existing Projects into Workspace 클릭 - 아래 next 클릭 - 상단우측 browse 눌러서 경로 지정 - 중간에 option에서 copy projects into workspace 체크하고 finish

 

 

 

나의 파일을 외부로 보내고 싶다면?

Package Explorer창에서 곳에 우클릭 - export - General - archive file 클릭 - next 클릭 - 지정경로 지정 browse 클릭 - finish

 

728x90
반응형
728x90

이클립스(Eclipse) 설치 & 사용법

 

이클립스 세팅

인코딩 방식 UTF-8로 변환해두기

안하면 파일 다 깨져서 난리남...

https://parkjye.tistory.com/35

 

이클립스(Eclipse) 종류

EE(기업용),자바개발자용,안드로이드 개발자용, c/c++개발자용

 

 

디버깅 degguing

프로그램 에러를 잡는

 

 

<이클립스 사용법>

오른쪽 동그라미 (perspective)에서 화면을 다른 기능을 있게 전환가능

 - 디버그, java, git 등등

 

 

뷰마다 타이틀 줄을 더블클릭하면 큰화면으로 전환되고, 드래그로 위치도 변경가능

또한, 프로그램 상단에 windows탭에서 view 열고 닫고 설정 가능

 

 

이클립스에서는 프로그램을 프로젝트 단위로 작성함. 새로운 프로젝트를 생성해야함

 

 

 

java 프로젝트 생성 - class 생성

  • class 첫글자는 무조건 대문자로

 

 

이클립스에서는, 파일을 저장할 때마다 자동적으로 컴파일 해주기에 따로 컴파일 필요x

아래의 화면이 이와 관련된 것이고, 파일이 저장되지 않았고 따라서 컴파일도 되지 않았으므로 묻는

 

 

*이클립스(Eclipse) 자동 컴파일 기능

프로그램 상단 Project - Build automatically(자동 빌드(=자동 컴파일))

이게 체크 되어있는 것은 파일을 저장할 자동으로 컴파일해라는 의미

 

빌드 본래의 의미는 소스파일로부터 프로그램을 만들어내는 과정을 의미

 

간단한 자바프로그램을 만드는거고 다른 과정없이 단순히 컴파일만 하면 되니 지금은 build automatically 컴파일을 자동으로 하라는 뜻으로 이해하면

 

 

 

왼쪽에 package explorer에는 현재 Hello.java파일만 보이고 class파일이 안보이는 것은,

package explorer 뷰는 프로젝트를 소스파일 위주로 보여주기 때문

 

이렇기에 클래스파일 생성여부를 확인하려면,

탐색기로 보거나 네비게이터 뷰를 열어서 확인 (상단 window - show view - navigator클릭. navigator창이 새로생김)

 

네비게이터 뷰는 윈도우 탐색기처럼 모든 파일을 보여줌

.으로 시작하는 .classpath .project 같은 파일은 이클립스에서 관리용 파일로 만든 것이니 만지지 않는게 좋다

 

 

 

자바 이클립스 에러 체크 방법

 

 

 

파일이 수정됬지만 아직 저장되지 않았다는 의미

 

 

<이클립스에서 자바 프로그램 작성하는 순서>

 

1.프로젝트 생성

 메뉴 file - new - java project

 

2.클래스 생성

 project 이름 위에서 우클릭 - new - Class

 

3.소스 파일 작성 저장(자동 컴파일됨)

 

4.실행

 메뉴 run - run

 

 

 

Build 관련 메뉴 설명

 

 

Build?

소스파일(*.java)로부터 프로그램을 만들어내는 과정

 

  • Build All : workspace의 모든 프로젝트를 빌드
  • Build Project : 현재 프로젝트만 빌드(단, 변경된 소스파일나 새로 작성된 소스파일만 컴파일함)
  • Build Automatically : 소스파일 변경 후, 저장할 때마다 자동 컴파일
  • Clean : 이전 빌드의 정보를 모두 삭제(모든 소스파일을 새로 컴파일)                                                               - 간혹가다  이유없이 프로그램이  실행되지 않을 경우 clean하고 하면 해결되는 경우가 있음

 

 

728x90
반응형

+ Recent posts