본문 바로가기

반응형

Java

(23)
[Java] 접근 제어 지정자 같은 클래스 같은 패키지 자식 클래스 전체 public O O O O protected O O O X default O O X X private O X X X
[Java] Interface package org.opentutorials.javatutorials.interfaces.example1; interface I{ public void z(); } class A implements I{ public void z(){} } 클래스 A 뒤의 implements I는 이 클래스가 인터페이스 I를 구현하고 있다는 의미 그것은 3행의 interface I의 맴버인 public void z() 메소드를 클래스 A가 반드시 포함하고 있어야 한다는 뜻
[Java] final final 변수 package org.opentutorials.javatutorials.fanalTest; class Calculator { static final double PI = 3.14; int left, right; public void setOperands(int left, int right) { this.left = left; this.right = right; Calculator.PI = 6; //error } public void sum() { System.out.println(this.left + this.right); } public void avg() { System.out.println((this.left + this.right)/2); } } public class Calcul..
[Java] abstract package org.opentutorials.javatutorials.abstractclass; abstract class A { } public class AbstractTest { public static void main(String[] args) { A obj = new A(); } } Exception in thread "main" java.lang.Error: Unresolved compilation problem: Cannot instantiate the type A 에러가 뜬다 메소드 중에 1개라도 abstract 메소드가 있으면 클래스도 abstract 클래스가 되어야 한다. package org.opentutorials.javatutorials.abstractclass; abstrac..
[Java] 클래스 접근 제어자 public, default 두개가 있다. public 클래스는 다른 패키지의 클래스에서 사용 가능 default 클래스는 같은 패키지에서만 사용 가능
[Java] 메서드 접근 제어자 package org.opentutorials.javatutorials.accessmodifier; class Test { public String y() { return "public void y()"; } private String z() { return "private void z()"; } public String x() { return z(); } } public class AccessDemo { public static void main(String[] args) { Test t = new Test(); System.out.println(t.y()); //System.out.println(t.z()); //error System.out.println(t.x()); } } 출력값 public v..
[Java] overloading 오버로딩 package org.opentutorials.javatutorials.overloading; class Calculator { int num1, num2; int num3 = 0; public void setOprands(int num1, int num2) { System.out.println("setOprands 2"); this.num1 = num1; this.num2 = num2; } public void setOprands(int num1, int num2, int num3) { System.out.println("setOprands 3"); this.num1 = num1; this.num2 = num2; this.num3 = num3; } public void sum() { System.out..
[Java] overrding 오버라이딩 package org.opentutorials.javatutorials.overriding; class Calculator { int left, right; public void setOperands(int left, int right) { this.left = left; this.right = right; } public void sum() { System.out.println(this.left + this.right); } } class CalculatorChildClass extends Calculator { public void sum() { System.out.println("값 은 " + (this.left + this.right)); } } public class CalculatorMain ..
[Java] 생성자, super package org.opentutorials.javatutorials; public class ConstructorTest { public static void main(String[] args) { ConstructorTest c = new ConstructorTest(); } } 위는 에러가 안난다. ConstructorTest 객체를 생성할 때 자동으로 생성자를 만들어주기 때문 package org.opentutorials.javatutorials.Inheritance; public class ConstructorTest { public ConstructorTest(int param) {} //error public static void main(String[] args) { Constructor..
[Java] 생성자 package org.opentutorials.javatutorials.constructor; class Calculator { int left, right; public Calculator(int left, int right) { this.left = left; this.right = right; } public void sum() { System.out.println(this.left + this.right); } public void avg() { System.out.println((this.left + this.right)/2); } } public class CalculatorDemo1 { public static void main(String[] args) { Calculator c1 = ne..

반응형