JAVA (14) 썸네일형 리스트형 String vs StringBuilder vs StringBuffer 1. String 클래스 - "Funny String" 만으로 String 인스턴스 생성됨 - String 인스턴스는 생성되면 문자열 내용을 바꿀 수 없다. 새로 생성하고 그걸 참조하게 되는것 - String str1 = "AtoZ"; String str2 = "AtoZ"; 방식으로 생성하면 문자열 내용이 같기때문에 하나의 인스턴스를 공유한다. - new String()으로 인스턴스를 생성하면 내용이 같아도 다른 인스턴스다. 2. StringBuilder 클래스 - 내부적으로 문자열을 저장하기 위한 메모리 공간을 지닌다, 1) 이 메모리 공간은 String클래스의 메모리 공간과 달리, 문자를 추가하거나 삭제하는 것이 가능하다. 2) 따라서 수정하면서 유지해야할 문자열이 있다면, 이 클래스에 그 내용을 담.. [JAVA]14. 상속1 1. 1) 상속 : 기존에 정의된 클래스에 메소드와 변수를 추가하여 새로운 클래스를 정의 하는것 class A extends B => A의 인스턴스에는 B클래스의 변수/메소드가 존재한다. * 상속의 이유와 목적 : 연관된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있다. 상속은 코드의 재활용을 목적으로 사용하는 문법이 아니다!! 2) 상속관계에 있는 생성자의 호출관계 class A의 인스턴스 생성 => (1) 상위클래스의 생성자가 먼저 호출됨. // 명시적으로 호출하지 않으면 인자를 받지 않는 생성자가 자동으로 호출됨 (2) 하위 클래스의 생성자 호출됨 하위 클래스의 생성자에서 키워드 super를 이용해 상위 클래스의 생성자를 명시적으로 호출 할 수 있다. * 주의 : 하위클래스에서 첫 문장으로 .. [JAVA]13. 배열 1. 배열의 기본 1) 1차원 배열 : 타입이 같은 둘 이상의 데이터를 저장할 수 있는 1차원 구조의 메모리공간 * 자바에서는 배열도 인스턴스이다. 선언 & 생성문> int[] ref = new int[5];(크기지정 필수) * 기본 Type이 아니어도 배열 생성이 가능하다. Box[] ar = new Box[5]; 주의> 이는 BOx 인스턴스의 생성과는 관계 없다. 5개의 Box 인스턴스를 저장 할 수 있는 배열이 생성될 뿐 이다. 2)배열과 메소드 - 메소드 호출 시 참조값의 전달이 가능하다. - 배열의 참조값을 반환하는 메소드 정의도 가능하다. 3) 배열의 초기화와 배열의 복사 - 0이나 null값으로 초기화 된다. -fill 함수를 통해 다른값을 초기화 할 수 있다, - arraycopy 를 통해.. [JAVA]12. 콘솔 입력과 출력 1.콘솔 출력 * System.out.println()은 참조값이 전달되면, 이값의 인스턴스를 대상으로 toString 메소드를 호출한다. * System.out.printf 는 문자열의 내용을 조합하여 출력 System.out.printf("정수는 %d, 실수는 %f", 12,3) 2. 콘솔 입력 Scanner 클래스 이 클래스에는 굉장히 많은 생성자가 정의 되어있다. Scanner(File Source) Scanner(String Source) Scanner(InputStream Source) Scanner 클래스는 생성자로 전달되는 대상으로부터 데이터를 추출하는 기능을 제공한다. 파일, string 인스턴스 등 다양한 대상으로 부터의 데이터 추출이 가능하다. Scanner sc = new Scann.. [JAVA] 10. static선언-클래스 변수와 클래스 메소드 인스턴스 변수 : 인스턴스가 생성되었을때, 인스턴스 안에 존재하는 변수 클래스 변수 : 인스턴스의 생성과 상관없이 존재하는 변수 1. 클래스변수 - 클래스 내에 선언된 변수 앞에 static 선언을 붙이면 인스턴스 변수가 아니라 클래스 변수가 된다. - class의 모든 인스턴스가 공유하는 변수 - 클래스 이름 & 인스턴스의 이름을 통해 접근 가능 - 인스턴스의 생성과 무관하게 메모리 공간에 존재한다( 클래스 정보가 읽히는 순간 할당된다.) - 인스턴스 내에서 초기화 하기보다 선언시에 초기화 하는것이 바람직하다. 이러한 클래스 변수는, 1) 인스턴스간 데이터 공유가 필요한 상황 2) 클래스 내 외부에서 참조가 목적인 정보를 가르킬때(인스턴스가 각각 지녀야 하는 값이 아닐때) 활용할 수 있다. 2. 클래스.. [JAVA]09.정보은닉,캡슐화 인스턴스 변수의 직접적인 접근을 허용하면, 특정 제한을 무시하는 등의 문제가 발생할 수 있다. 따라서 이를 허용하지 않도록 접근수준 지지자를 이용해 클래스를 설계하자. 1. 접근 수준 지지자 - public , protected, private, default 접근수준 지지자는 클래스를 정의할 때나 인스턴스 변수/메소드 앞에 붙일수 있다. 1) 클래스 앞에 붙이는 접근 수준 지지자 - public, default public class AAA{ } // 클래스의 public 선언 => 어디서든 AAA의 인스턴스를 생성할 수 있다. class BBB{ } // 클래스의 default 선언 => 같은 패키지 내의 클래스만 BBB의 인스턴스를 생성할 수 있다. * 클래스의 public 선언을 위한 두가지 규칙.. [JAVA]08. 패키지와 클래스 패스 1. 클래스 패스(Class Path) : 자바 가상머신이 프로그램의 실행과정에서 클래스 파일을 찾는 경로 - 따로 지정하지 않으면, pwd에서 찾는다. - [set classpath = 경로 ] 명령을 통해 클래스 패스를 추가 할 수 있다. but, 이 방식으로 지정한 클래스 패스는 이를 지정한 명령 프롬포트에서만 유효하다. 새 사용자 변수 창을 이용해 계속 유지되도록 할 수 있다. 2. 패키지(Package)의 이해 ; 클래스를 묶은 수단 하나의 소스파일에는 public으로 선언된 클래스의 정의를 하나만 둘 수 있다. 소스파일의 이름은 public으로 선언된 클래스의 이름과 동일해야한다. *내기억> 소스파일 실행-> 그 이름과 같은 public 클래스를 찾아 그 안에서 main 실행 패키지의 목적 1.. [JAVA]07. 클래스와 인스턴스 1. 클래스의 정의와 인스턴스의 생성 클래스란? = [데이터 + 메소드] class BankAccount { int balance = 0; //인스턴스 변수 pulblic int deposit(){ // 인스턴스 메소드 } } 인스턴스 변수 = 클래스 내에 선언된 변수 (!= 지역변수) * 메소드 내부에 선언된게 아니다. * 인스턴스 변수는 같은 클래스 내에 위치한 메소드 내에서 접근이 가능하다. 인스턴스 메소드 = 클래스 내에 정의된 메소드 인스턴스(객체)의 생성 : new BankAccount(); => BankAccount myAcnt = new BankAccount(); // 참조변수 myAcnt의 선언, 새로 생성되는 인스턴스를 가르키도록 함 참조변수의 특성 1. 하나의 인스턴스를 둘 이상의 참.. 이전 1 2 다음