전체 글 157

2022-10-25 입출력 I/O

입출력 I/O 1. 스트림 - 데이터를 운반하는데 사용되는 연결통로이다. - 단방향 통신만 가능(하나의 스트림으로 입출력 동시에 처리 불가) - 입력스트림(InputStream)과 출력스트림(OutputStream) 필요함 2. 바이트기반 스트림 (1byte) : InputStream, OutputStream - byte단위 입력을 위한 클래스의 상위클래스인 InputStream - 키보드를 입력한 문자를 읽어서 리턴 - 1byte단위로 읽기 때문에 한글을 입력하면 깨짐(한글 - 2byte) package io; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; public class InputStream..

JAVA 2022.10.28

2022-10-24 Arrays클래스, Stack / Queue, 검색 알고리즘 - 선형검색, 이진검색, 정렬 알고리즘 - 단순 선택 정렬

Arrays클래스 : 배열을 다루기 위해 만들어진 클래스 - 배열을 다루기 위한 다양한 메소드 포함 - 많은 메소드가 static메소드이다. - import java.util.Arrays; - Arrays.sort 이용하여 배열 정렬하기 import java.util.Arrays; public class ArraysTest { public static void main(String[] args) { int[] myarr = {19, 30, 89, 36, 82}; display(myarr); // 정렬 하지 않고 그대로 출력됨 // 배열의 모든 데이터를 오름차순으로 정렬, 매개변수로 정렬할 배열을 전달받음 Arrays.sort(myarr); display(myarr); // 정렬한 결과 출력됨 - Arra..

JAVA 2022.10.24

2022-10-21 컬렉션 프레임웍 ArrayList / Vector, 스택과 큐

컬렉션 프레임웍 ArrayList - Vector를 개선한 것으로 컬렉션 프레임웍에서 가장 많이 사용되는 컬렉션 클래스 - List인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징이 가진다. - Object배열을 이용해서 데이터를 순차적으로 저장한다. - 첫 번째로 저장한 객체는 Object배열의 0번째에 저장되고 두 번째로 저장하는 객체는 1번째 위치에 저장된다. 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성해서 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음에 저장된다. - 사용 방법 ArrayList 이름 = new ArrayList (); ArrayList v = new ArrayList(); // 생성, int[] arr ..

JAVA 2022.10.23

2022-10-21 java.lang패키지와 유용한 클래스(API활용법)

String클래스 - 클래스의 비교 public class StringTest01 { public static void main(String[] args) { String str1 = "java"; //리터럴의 형태로 접근 String str2 = "java"; String str3 = new String("java"); //객체 생성 String str4 = new String("java"); if(str1==str2) { //같다. System.out.println("same"); }else { System.out.println("not name"); } if(str1==str3) { System.out.println("same"); }else { System.out.println("not name"..

JAVA 2022.10.22

2022-10-18 객체지향언어 - 인터페이스, 예외처리방법 1. try-catch / 2. 예외선언하기(throw, throws)

인터페이스 : 추상메소드만 보관하는 특별한 클래스 => 인터페이스를 사용하면 다형성을 적용할 수 있으며 다중상속 받은 것처럼 구현할 수 있다. 1. 인터페이스는 정의할 때 interface키워드를 이용해서 정의 2. 인터페이스는 추상메소드만 정의할 수 있다. - 인터페이스에 정의하는 모든 메소드는 public abstract을 생략해도 된다. - 멤버변수는 상수로 public static final이다. - 하위클래스에서 오버라이딩하면 자동으로 public이 추가된다. 3. 클래스가 인터페이스를 상속할 때는 implements로 상속(구현) 4. 인터페이스가 인터페이스를 상속할 수 있다. - 인터페이스가 인터페이스를 상속하는 경우 extends를 이용 5. 클래스가 인터페이스를 상속하는 경우에는 다중상속..

JAVA 2022.10.22

2022-10-17 객체지향언어 - 다형성. 추상클래스, 제어자 fanal

다형성 다형성을 이해하기 위해 알아야 할 것 1. 상속 2. 오버라이딩 3. 추상클래스(abstract, interface) 4. 객체의 형변환 - 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하는 것. 반대로 자손타입의 참조변수로 조상타입의 인스턴스를 참조할 수는 없다. - 참조변수가 사용할 수 있는 멤버의 개수는 인스턴스 멤버 개수보다 같거나 적어야 한다. (자식이7개, 조상이5개이면 안 된다는 뜻) 참조변수의 형변환 : 사용할 수 있는 멤버의 갯수를 조절하는 것. - 서로 상속관계에 있는 클래스사이에서만 가능하다. => 자손타입의 참조변수를 조상타입의 참조변수로, 조상타입의 참조변수를 자손타입의 참조변수로의 형변환만 가능 => 부모객체에 자식객체를 담을 수 있다(부모 obj..

JAVA 2022.10.18

2022-10-14 객체지향언어 - 생성자, 상속

생성자 -> opp.basic.constructor 패키지 : 생성자는 객체가 생성될 때 한 번!! 호출되는 메소드 ▶ 클래스타입 변수 = new 생성자메소드() ---------------------- ㄴ클래스 내부 - new연산자가 생성자 메소드를 보고 메모리에 할당할 클래스가 무엇인지 파악하고 생성자메소드를 호출해야 하므로 지켜야 하는 규칙이 존재한다. ▶ 규칙 1) 생성자를 정의하지 않으면 컴파일러가 자동으로 매개변수가 없는 생성자를 추가한다. => 매개변수가 없는 생성자를 기본생성자라 한다. 2) 생성자메소드는 항상 반환값이 없기 때문에 리턴타입을 명시하지 않는다.(void조차 명시하지 않음) 3) 생성자메소드명은 클래스명과 대소문자까지 동일하게 정의한다. 4) 생성자메소드에 매개변수를 추가할 ..

JAVA 2022.10.17

2022-10-13 객체지향언어 - 배열, 클래스 메소드(static메소드)와 인스턴스 메소드

배열 - 가변데이터는 배열에 저장하면 안 된다. 1. 배열의 선언 int[] arr; 2. 배열의 생성 arr = new int[3]; 3. 배열의 초기화 arr[0] = new String("java"); => 생성할 때 정의한 크기만큼 각각의 데이터를 저장할 수 있는 공간이 만들어진다. 이를 요소라고 하고 각 요소에는 index가 부여된다. 배열변수[index]=배열변수에 저장할 값 - 배열의 요소에는 초기값을 주지 않아도 자동으로 초기값이할당된다. int(정수) = 0 double(실수) - 0.0 boolean - false 참조형 = null 4. 배열의 선언과 생성을 동시에 int[] arr = new int[10]; 5. 배열의 선언, 생성, 초기화를 한 번에 int[] arr = {10, ..

JAVA 2022.10.13

2022-10-11~12 객체지향언어 - 메소드 작성방법, 호출, 오버로딩, 캡슐화, 생성자 +활용

객체지향언어 다양한 유형의 메소드 정의하기 1. 매개변수없고 리턴값이 없는 메소드 => *을 10개 출력하는 기능을 갖고 있는 메소드 => 외부에서 입력 받는 값이 없고 메소드 실행 결과값도 없다. => *을 10개 출력할 경우에만 사용할 수 있다. public void display() { for(int i=1; i 리턴값(메소드 실행결과)에 대한 타입을 메소드 선언부에 명시 => 반드시!! 메소드의 마지막 문장에 return명령문을 이용해서 결과를 리턴시켜야 한다 public int add(int num1, int num2) { //리턴값이 int이기 때문에 int add //return num1+num2; // 연산식이나 메소드 호출문을 직접 리턴값으로 사용가능 //return값이 있는 메소드는 리..

JAVA 2022.10.12