본문 바로가기

[자바 기본기] 제어자 1. 제어자(modifier)란? - 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여한다. - 제어자는 크게 접근 제어자와 그 외의 제어자로 나뉜다. - 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있으나, 접근제어자는 단 하나만 사용할 수 있다. 접근 제어자 : public , protected, default, private 그 외 : static, final, abstract , native, transient, synchronized, volatile, strictfp 2. static ( 클래스의 , 공통적인 ) static이 사용될 수 있는 곳 - 멤버변수, 메서드, 초기화 블럭 3. final ( 마지막의 , 변경될 수 없는 ) final이 사용될 수 있는 곳 - 클..
[자바 기본기] package와 import 1. 패키지 (package) - 서로 관련된 클래스와 인터페이스의 묶음. - 클래스가 물리적으로 클래스파일(.class)인 것처럼, 패키지는 물리적으로 폴더이다. 패캐지는 서브패키지를 가질 수 있으며 , '.'으로 구분한다. - 클래스의 실제 이름(full name)은 패키지명이 포함된 것이다. (String 클래스의 full name은 java.lang.String) - rt.jar는 Java API의 기본 클래스들을 압축한 파일 1.1 패키지의 선언 - 패키지는 소스파일에 첫 번쨰 문장 으로 단 한번 선언한다. - 하나의 소스파일에 둘 이상의 클래스가 포함된 경우, 모두 같은 패키지에 속하게 된다. - 하나의 패키지 안에 두 개의 public class 가 존재 할 수 없다.- 파일 이름은 publ..
[자바 기본기] 오버라이딩 1. 오버라이딩 (overriding) 이란? "조상클래스로부터 상속받은 메서드의 내용을 상속받는 클래스에 맞게 변경하는 것을 오버라이딩이라고 한다." 2. 오버라이딩의 조건 선언부가 같아야 한다. ( 이름 , 매개변수 , 리턴타입 ) 접근 제어자를 좁은 범위로 변경할 수 없다.- 조상의 메서드가 protected 라면, 범위가 같거나 넓은 protected 나 public 으로만 변경할수있다. 조상클래스의 메서드 보다 많은 수의 예외를 선언할 수 없다. - 조상 클래스에 선언된 예외만이 선언 가능하다. 개수의 문제가 아니다. 3. 오버로딩 vs 오버라이딩 오버로딩(over loading) : 기존에 없는 새로운 메서드를 정의하는 것오버라이딩 (overriding) : 상속받은 메서드의 내용을 변경하는것..
자바 split 메소드로 문자열 분할하기 자바 1000제를 풀던 중, String 클래스의 split 메소드를 사용하게 되었다.사용법을 보니 대강 이해는 가는데, limit이 잘 이해가 안된다 ㅡㅡㅋ 출처 : http://byeonely.tistory.com/108 public String [] split(String regex, int limit) 정규표현(regex)에 따라 결과 배열의 길이를 제어(limit)하는 문자열을 만든다. 분할 할 문자열을 String regex 을 기준을 분할 시킨다. limit 에 따라 3가지 분할 방법으로 나누어 볼 수 있다. 1. limit 가 0(zero)일 경우 String str = "a/b/c/d////"; String regex = "/"; int limit = 0; String[] result =..
[자바 기본기] 상속 1. 상속(inheritance) 상속이란?- 기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것.- 두 클래스를 조상과 자손으로 관계를 맺어주는 것.- 자손은 조상의 모든 멤버를 상속받는다. ( 생성자 , 초기화블럭 제외)- 자손의 멤버개수는 조상보다 적을 수 없다. ( 같거나 많다.) 상속의 장점 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 용이함 즉, 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여함. 2. 클래스간의 관계 상속관계 (inheritance) - 공통부분은 조상에서 관리하고 개별부분은 자손에서 관리한다.- 조상의 변경은 자손에 영향을 미치지만, 자손의 변경은 조상에 아무런..
문자열 입력과 출력 (Scanner) 문자열 입력과 출력 (Scanner) 처음 프로그래밍 언어를 공부할 때, C 언어를 많이 공부할 것이다. 그때 가장 먼저 배우는 것이 printf() 이고, 문자열을 입력받는 scanf() 이다. 알고리즘을 공부할때도 printf() 와 scanf() 를 많이 사용한다. 그럼 자바에서는 C 언어의 printf() 와 scanf()는 무엇일까? 문자열을 출력하는 명령은 System.out.println(); 을 사용하고, 문자열을 키보드로 입력받을 때는 System.in 을 사용한다. 하지만 입력받은 문자열을 읽고 처리하기 위해서 Scanner 클래스에 담아서 처리한다. Scanner 클래스는 표준 Java 클래스 라이브러리에 속하며, 다양한 타입의 입력 값들을 읽어들이기 위한 편리한 방법을 제공한다. S..
[자바 기본기] 변수의 초기화 1. 변수의 초기화 - 변수를 선언하고 처음으로 값을 저장하는 것- 멤버변수 와 배열은 각 타입의 기본값으로 자동초기화되므로 초기화를 생략가능 - 지역변수는 사용전에 꼭!!! 초기화를 해주어야한다. Class InitTest { int x; // 인스턴스 변수 int y = x; // 인스턴스 변수 void method1() { int i; // 지역변수 int j = i; // 컴파일 에러!!! 지역변수를 초기화 없이 사용했음. } } 2. 멤버변수의 초기화 멤버변수의 초기화 방법1. 명시적 초기화 ( explicit initialization) class Car { int door = 4; // 기본형 변수의 초기화 Engine e = new Engine () ; // 참조형 변수의 초기화 } 2. ..
public static void main(String[] args) 의미는? public static void main(String[] args)의 의미란? - 메인 메서드는 진입점(Entry Point)을 뜻한다. - 그러므로 메인 메서드의 접근자는 항상 public 이어야 한다. - 그리고 메인 메서드는 항상 정적이어야 한다. - 클래스는 메모리에 로딩된 다음에 사용이 가능하다. - static이 붙은 클래스나 메서드, 변수는 컴파일시 자동으로 로딩된다. - 메인 메서드는 클래스 로딩 없이 호출할 수 있어야 한다. - 그렇기때문에 static을 사용한다. - void는 리턴타입이 없다는 뜻이다. - 메인 메서드는 Entry Point이면서 프로그램의 끝이기도 하다. - 메인으로 시작해서 메인이 끝나면 그 프로그램도 끝이다. - 그러므로 리턴하는 값 자체가 불필요하다. - 프로..