목록JAVA (20)
hyeongwoo's blog
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bkUzS0/btsFffwYjxs/bqA1lSlEFzBrmFqMW6PSUK/img.png)
자바에서는 클래스의 멤버변수나 멤버함수에 접근을 제한 할 수 있는데 이때 사용하는 것을 접근제한자라고 한다. 접근제한자의 종류는 다음과 같다 prviate : 클래스 내부에서만 접근가능하다. default(package): 같은 패키지에서만 접근이 가능하다. protected : 상속관계 클래스에서 접근이 가능하다. public : 어디서든 접근이 가능하다. 접근 범위는 대략적으로 아래와 같다. package 파일1; public class 클래스1{ private int a; int b; protected int c; public int d=0; public 클래스1(){ a=0; b=0; c=0; d=0; } } ---패키지 변경--- ------------------------------------..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dv4yWH/btsEJcGAfA2/SpnxV2vgFotSCFVpHCM751/img.png)
자바에서는 여러 데이터들을 저장하기위해서 배열을 사용한다. 하지만 배열의 치명적인 단점이 있는데 한 번 크기를 지정하면 크기를 변경할 수 없고, 변경하고자 한다면 새로운 크기의 배열을 만들고 기존의 값을 전부 복사해야한다. 하지만 컬렉션을 이용하면 크기를 지정할 필요없이 일정 크기가 되면 알아서 크기를 늘려주어 새로운 값은 추가 해주기만 하면 된다. 자료구조 자료구조란 데이터(자료)를 메모리에서 구조적(추가, 삭제, 조회, 정렬, 수정)으로 처리하는 방법론이다. 자바에서 자료구 조 및 알고리즘을 구현해 놓은 라이브러리가 있는데 이를 컬렉션이라고한다. 컬렉션 자료구조 개념이 내장되어있는 클래스로 자바에서 제공하는 자료구조를 담당하는 프레임워크이다. 제네릭 기반으로 구형이 되어있다. 자바에서 컬렉션은 jav..
제네릭(Generic) 제네릭은 하나의 값에 여러 데이터 타입을 가질수 있게 만드는 방법이다. 제네릭은 클래스나 메소드에서 사용할 내부 데이 타입을 컴파일시의 미리 지정한다. 제네릭을 사용하면 타입을 유연하게 처리할 수 있으며 컴파일단계에서 타입체크를하여 잘못된 타입을 사전에 방지 할 수 있다. 외부에서 직접 타입을 지정해주기 때문에 코드를 관리하기도 편하다. ArrayList arr1=new ArrayList(); ArrayList arr2=new ArrayList(); ArrayList arr3=new ArrayList(); 자바에서 제공하는 ArrayList 클래스가 여러개의 타입을 갖는 예시이다. 직접 코드를 작성시에 타입을 지정해 줄 수있다. 아래는 제네릭 클래스 예시 코드이다. public c..
자바에서 final키워드는 변수 앞에 붙거나 메소드의 반환형 앞에 붙는다. 자바에서 final 키워드가 변수앞에 붙으면 그 변수는 한번 초기화되면 다시는 변경할 수 없는 상수가 된다. 메소드내 지역변수 앞에 final이 붙으면 최초 초기화후 변경이 불가하다. final int a=2; //상수 또한 멤버 변수에도 final이 붙을수 있는데 이때도 최초에 초기화후 변경이 불가하다 하지만 인스턴스별로 생성되는 멤버 변수가 다르기 때문에 인스턴스를 참조하는 객체에서만 변경이 불가하고 객체별로는 다른 값을 가질 수 있다. 이게 무슨 말이냐면 public class 클래스1{ private final int a; //final 멤버변수는 반드시 생성자에서 초기화 해주어야한다. public 클래스1(int a){ ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/py54K/btsIezZkPiS/EA3zThsNdqJevdMpuOZnZ1/img.png)
1. 자바의 입력출력클래스 자바의 입력시 Scanner를 주로 사용한다. 하지만 Scanner는 상당히 느리기때문에 빠른 실행시간을 원하거나 코딩 테스트에서는 Scanner 대신 BufferedReader와 , InputStreamReader를 사용합니다. 출력시에도 System.out.Println()을 사용하는데 이 또한 느리기때문에 BufferedWriter와 OuputStreamReader를 사용합니다.BufferedReader, BufferedWriter 와 InputStreamReader, OuputStreamReader 에 관해 알려면 자바 입출력 스트림에대해 알아야..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cafTXb/btsEE10G01N/SkkK32KDF8R4ys9Es2Ip3K/img.png)
Static Static이라는 의미는 정적이라는 의미를 가지고 있다. 자바에서 Static영역의 메모리가 있는데 여기에 할당되는 변수나 메소드는 클래스당 딱 한번만 할당되며 모든 인스턴스가 공유를 한다. Static영역과 None_Static영역 자바에서 클래스안에있는 None_static영역의 변수나 메소드들은 각각 인스턴스 변수, 인스턴스 메소드라고 한다. 인스턴스 변수와 메소드들은 인스턴스가 생성이 될때 마다 각각 다른 메모리에 할당되는데 해당 인스턴스 영역은 인스턴스를 참조하고있는 참조변수를 통해서만 접근 ,즉 객체를 통해서 만 접근이 가능하다. 반면에 Static영역의 변수와 메소드는 객체생성없이 클래스로 바로 접근할 수 있다.(참조변수로도 접근이 가능하긴하다.) 이러한 Static변수와 메소드..
다형성(Polymorphism) 프로그래밍에서 하나의 객체가 여러타입의 인스턴스를 참조할 수 있는 것이다. 자바에서 다형성은 클래스상속과 인터페이스구현을 통해 이루어진다. 다형성 조건 클래스가 상속 관계이거나 인터페이스 구현관계이어야한다. 부모클래스가 자식클래스(상속받는클래스)를 참조해야한다. 자식클래스에서는 부모클래스나 인터페이스의 메소드를 반드시 오버라이딩 해야한다. 자식클래스는 부모클래스로 업캐스팅 되어야한다 자식클래스로 부모클래스는 참조가 불가하다. 오버라이딩 이외의 자식클래스의 유일 메소드에는 부모클래스의 참조변수로 접근이 불가하다. 다형성의 장점 여러개의 객체를 하나의 타입으로 관리할 수있다 객체의 재사용성이 높아진다 객체들의 확장에 용이하다. 다형성 예시 class Animal { publi..
[상속] 상속은 자식이 부모로부터 물려받는것을 의미한다. 자바에서 상속도 같은 의미이다 . 클래스가 클래스로 물려주는 형태가 존재 , 물려주는 클래스는 부모클래스, 물려받는 클래스는 자식클래스라고 한다. 여러클래스에서 같은 코드를 사용할때,아니면 클래스를 재사용할때 번거러움을 줄이기 위해 클래스의 상속관계를 이용하여 중복을 줄여 효율적인 프로그래밍을 할 수 있다. [Java에서의 상속] 다른 클래스가 가지고 있는 멤버들을 새로 작성할 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능이다. 목적 클래스의 재사용 연관된 일련의 클래스들에 대한 공통적인 규약정의 사람이 사용하기위한 규칙을 설정 장점 보다 적은 양의 코드로 새로운 클래스를 작성할수 있다. 코드를 공..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bRAOjI/btsDQT3fT7Q/LNirD0N2grjp7BkALmu3R0/img.png)
함수 어떤 기능을 수행하는 박스 어떤 값을 넣으면 함수에 대한 의도한 값이 나온다. 메소드 클래스안에 있는 함수 자바에서 함수는 모두 클래스안에 존재하므로 모두 메소드이다. public class MyClass{ public void my_method1(){ //반환형이 void //내용 } public int my_method2(){ //반환형이 int return 1; } } 반환형 메소드의 실행결과로 나오는 값 자료형타입에따라 반환형이 달라진다. return 문을 사용한다. 반환형이 없을수도 있다.(void) 매개변수 함수에 값을 전달해주는 변수 여러개가 들어갈 수 있다. 자바의 main 메소드 프로그램의 시작은 main메소드에서 한다. 자바에서 무조건 한개는 있어야한다. 자바 컴파일러가 어디서든 ..
자바에서 this 는 자신의 객체의 인스턴스를 참조하는 데 사용한다 클래스 내부에서만 사용이 가능하다 this 사용 현재 객체의 필드 참조 해당 클래스의 필드를 명확하게 참조 가능하다 메소드의 매개변수이름과 클래스 필드 이름이 같을때 사용시 유용하다. 생성자 오버로딩에서 사용 클래스에 여러 생성자가 있을때 한 생성자에서 다른 생성자를 호출 가능하다. 메소드 체이닝 메소드가 this를 반환시 같은 객체에대해 연속된 메소드 호출이 가능하다. this 사용 예시 자동차 클래스를 만들어 예시를 들었다. public class Car { //필드 선언 private String color; // 차의 색 private int speed; // 차의 속도 // 생성자 오버로딩 public Car() { this("..