본문 바로가기

분류 전체보기

(252)
[Java] File 만들기/읽기 import java.io.*; import java.util.Scanner; public class PhoneWriterEx { public static void main(String[] args) { FileWriter fw = null; //초기값 File f = new File("c:\\temp\\phone.txt"); //저 장치 밑에 저장해 줌 try { fw = new FileWriter(f); Scanner sc = new Scanner(System.in); System.out.println("전화번호 입력 프로그램입니다."); while(true) { System.out.print("이름 전화번호 >> "); String line = sc.nextLine(); //한 줄을 읽는다. if(..
[Java] 거스름 돈 출력 - 예제 import java.util.Scanner; public class Main1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] coin = { 1000, 500, 100, 50, 10 }; int sum = 0; //지불금액 System.out.print("물건 값을 입력하세요 : "); int mulG = sc.nextInt(); System.out.print("지불한 돈의 액수를 입력하세요 : "); int inputM = sc.nextInt(); //출력 sum = inputM-mulG; if(inputM>mulG) { System.out.println("거스름 돈 : " + sum + "원"..
[Java] 추상클래스 abstract class AbstractClass{ //변수 선언 int age; //구현된 메소드 void generalMethod() { System.out.println("일반 메소드"); } //추상 메소드 abstract void abstractMethod(); //추상 메소드는 {} 실행부분이 있으면 안 됨 } class AbstractChildClass extends AbstractClass{ //상속 @Override void abstractMethod() { System.out.println("추상 메소드 구현"); } } public class AbstractTest1 { public static void main(String[] args) { //추상 클래스로 객체 생성 //Abst..
[Java] 다형성 정의 다형성 쉽게 상속의 반대 라고 생각을 할수도 있다. Person1 person = new Person1(); Student student = new Student(); 지금까지 객체생성을 할 때 클래스 타입과 동일한 클래스 타입을 참조했다. 하지만 이 방법만 있는 것이 아니다! 다형성을 이용하면 부모 클래스 타입의 레퍼런스 변수로 자식 클래스 객체를 참조할 수 있다! 자식이 부모에게 받으면 상속(extends) 부모가 자식에게 받으면 다형성! (물론 자식도 부모의 값을 다운 캐스팅으로 참조할 수 있다) 업 캐스팅(UpCasting) 부모 클래스 타입 레퍼런스 = 자식 클래스 객체의 참조 값 Person1 person = new Child(); 이렇게 참조하게 되면 자식 클래스 객체의 레퍼런스 값의 타입은..
[Java] 접근 제한자, final 예약어 접근제한자 변수, 메소드, 생성자, 클래스 등의 자원을 어떤 범위까지 접근가능한가 지정하는 예약어이다. private 해당 클래스 내에서만 접근이 가능. 손상을 막기 위해 다른 사람이 함부로 할 수 없다. (캡슐화) default 접근제한자를 지정하지 않을 경우 붙는다. 기본적으로 같은 패키지 내에서만 접근이 가능하다. protected 같은 패키지 내에서는 접근이 허용되고, 다른 패키지에서도 자식클래스에서는 접근이 가능하다. public 모든 영역에서 접근이 가능. 다른 패키지에서도 접근이 가능하다. package Private2; public class PrivateData { private int privateVar = 10; } 클래스는 public, 하지만 변수 앞에는 private로 지정이 되..
[Java] 상속(extends)의 정의 - overriding, Super() 상속 부모 클래스에서 정의한 변수나 메소드를 자식 클래스에서 자신의 것처럼 사용할 수 있다. extends 예약어를 사용 package Extends; public class Parent{ int age; int parentVar = 10; void parentMethod() { System.out.println("parent Method"); } } 부모 클래스를 하나 만든다. 여기서 public은 모든 영역에서 접근이 가능한 접근제한자이다. 그리고 인스턴스 멤버 변수 두 개와 메소드 하나가 있다. package Extends; public class Child extends Parent { int childVar = 20; void chilldMethod() { System.out.println("c..
[Java] private, get-set 메소드 쉽게 생성하기(상속) 접근제한자를 배우진 않았지만 그 전에 각 변수에 private 지정하는 법과 get,set 메소드를 통해 해당 변수에 쉽게 접근하는 방법을 배워보겠다. 이런 형태를 캡슐화 라고 한다. 한 눈에 보기에 복잡하고 긴 코드 처럼 보이지만 일일이 손으로 치지 않고 생성할 수 있는 단축어가 있다. package Private; public class Person { private String name; private int age; private int height; private int weight; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { r..
[Java] 생성자(Constructor), this() 생성자, 초기화 블록 생성자(Constructor) new 연산자에 의해서 객체 생성을 할 때 단 한 번 호출되는 단위(아래에서 9번)이다. 생성자를 이용해서 객체 생성(20, 26, 32)을 하면 Heap 영역에 매 번 새로운 객체가 생성되는 것이다. 이전까지 파라미터가 없는 빈 생성자를 이용해 객체를 생성했는데 클래스에 생성자가 하나도 정의 되지 않았을 땐 컴파일러가 알아서 처리를 했다. 하지만 클래스에 인자값(11, 14)이 있는 생성자가 하나라도 있을 시 컴파일러가 처리를 못 하기에 반드시 빈 생성자(9)도 함께 정의해 주어야 한다. 인자값이 없다면 안 해도 됨! ▼ 11, 14번이 있는데 9번이 없다면 20번에서 생성자를 만들 수 없다. Console ... person1.name = null, person1.age..