목록전체 글 (226)
Daily coding
Inheritance 상속 * 접근제어자 ( 접근지정자 ) 1. private // 부모 클래스의 private 변수는 자식 객체에서 접근이 불가능 2. public // public 변수는 어디서든 접근이 가능 // main 메소드에서도 접근이 가능하다 (하지만 은닉성이 결여되어 잘 사용하지 않음) 3. protectedN // protected 제어자는 부모클래스를 상속받은 클래스에서 사용이 가능하다. // 또한, protected 제어자는 같은 패키지안에서는 상속 관계가 아니어도 사용이 가능하다 // (외부 패키지는 접근 허용 하지 않음) // 외부에서 접근하고 싶으면 getter/setter 메소드를 사용한다 // main메소드에서는 당연히 사용 및 접근이 불가능하다 부모클래스 예제 class S..
Static private int number; // instance 변수 public static int staticNumber; // class 변수라고도 함 // 메모리에 직접 접근하는 변수이기 때문에 getter, setter 가 필요없다. * 메모리의 종류 stack : local 변수, 선언된 { } 중괄호 블록이 끝나면 사라진다. heap : new 키워드, 동적할당, 메모리의 저장공간, Gabage Collecter가 지워줌 static : 정적변수, 프로그램 시작부터 메모리에 상주하고 프로그램 끝나면 사라짐 메모리에 공간을 할당하고 값을 유지하기 때문에 주의해서 써야함 system static 메소드 : 스태틱 메소드는 이렇게 호출한다. 클래스명.스태틱함수명(파라미터); // 클래스명으로..
복습! 1. 은닉화 (캡슐화) : 클래스의 필드에 직접 접근을 제어하고 메소드로 접근하여 데이터를 보호 - private / public / protected / package(default) - 연산처리는 클래스 내부에서 member변수, member메소드로 처리함 - 변수에 접근하는 경우, getter/setter 메소드로 접근하도록 한다. // 인스턴스의 선언 MyClass1 cls = new MyClass1(); // 기본 생성자 호출 cls = new MyClass1(12); // int형 매개변수를 1개 가지고 있는 생성자 호출 // 메인 클래스도 접근할 수 있다. (main 메소드가 있는 클래스) Lecture01_review mc = new Lecture01_review(); mc.func..
package day8.example3; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Scanner; public class FileClass { private File file; private String dirName; private String fileName; public FileClass() { di..
package day8.example2; import java.util.Arrays; import java.util.Scanner; public class Sorting { private int[] originalArr; private int[] sortArr; private int count; private boolean updown; public Sorting() { mainMenu(); originalArr = new int[count]; } // 숫자입력 메인 public void mainMenu() { Scanner sc = new Scanner(System.in); while(true) { System.out.println("몇 개를 정렬하시겠습니까 ? "); System.out.print("..
package day8.example; import java.util.Random; import java.util.Scanner; public class Baseball { //TODO : Field private int[] rNum; private int[] uNum; private boolean[] _switch; private boolean clear; private int ball; private int strike; private int count=0; // 생성자 public Baseball() { rNum = new int[3];// 난수 세개 담을 배열 생성 uNum = new int[3];// 유저 입력 담을 배열 생성 _switch = new boolean[10]; // 중복검사할 bo..
this 참조 - 자기 객체가 저장되어 있는 heap 영역의 주소 Student stu = new Student(); System.out.println(stu); // day8.Student@15db9742
constructor : 생성자 - 참조 : c언어의 structure - 클래스명과 같은 메소드 - 리턴값이 없다 - Overloadding이 가능 - 클래스변수 생성시에 자동 호출 - 별도의 호출은 불가능하다 (1회용) - 생략이 가능 (정의하지 않았어도 자바에서 자동으로 기본 생성자 생성해줌) - 초기값 설정에 많이 사용됨 - 생성자는 오버로딩이 가능하다 (오버로딩으로 초기 필드 값을 지정할 수 있음) - 생성자에 파라미터를 설정하여 내부의 멤버변수에 접근할 수 있다 * destructor : 소멸자 * - 자동호출 * - 자바에서는 따로 없음(Garbage collector가 담당) public static void main(String[] args) { MyClass2 cls = new MyCl..
Class 특징 1. 은닉화 ( = 캡슐화 ) : 외부와의 차단으로 변수들을 관리할 수 있음 클래스 내부에서만 접근(처리)이 가능하도록 변수의 접근제어자로 제어한다. - public (공개) : 멤버 메소드에 적용, 외부에서 접근이 가능 (같거나 다른 클래스, 다른 패키지) - private (비공개) : 멤버변수에 적용 (같은 클래스내에서만 접근가능) - protected(특정) : 상속과 관련된 제어자 (상속받은 클래스에서만 접근,처리가 가능) MyClass22 cls = new MyClass22(); // cls.number = 1; // cls.name = "hgd"; // cls.height = 172.1; // 위의 코드는 MyClass22 의 멤버변수에 직접 접근하는 코드이나 // MyCla..
** OOP 객체지향 ** : OOP 객체지향 * 절차지향 : 선언 - 초기화 - 입력 - 처리 - 결과로 프로그래밍이 이루어짐 - 문제점 : 코드가 길고 복잡해질수록 유지보수가 어려움 * 객체지향 * 참고 - (AOP : Aspect Oriented Programming) - 처리 중심의 프로그래밍 절차지향 : 순차적 처리 속도가 빠르다 - 객체지향은 클래스 설계가 중요함. ** 특징 ** 1. 은닉성 (캡슐화) 2. 상속성 3. 다형성 - 상속성과 다형성은 연관되어 있다 Class 설계 규칙 - 객체(설계부)는 메모리 영역에 올라가지 않는다. - 실제 데이터를 클래스 설계에 따라 저장하고 싶으면 다른 클래스에서 클래스변수(인스턴스)를 생성해야 한다. class 클래스명 { -- 변수부 -- 접근지정자..