import java.lang.*;
System.out.println(1);
==> 자바 에플리케이션을 만든다는 것은 결과적으로 자바에서 제공하는 패키지들을 부품으로 조립해서 사용자 정의 로직을 만드는 과정
class A {
public String y(){
return "public void y()";
}
private String z(){
return "public void z()";
}
public String x(){
return z();
}
}
public class AccessDemo1 {
public static void main(String[] args) {
A a = new A();
System.out.println(a.y());
// 아래 코드는 오류가 발생한다.
//System.out.println(a.z());
System.out.println(a.x()); // public -> private 가능
}
}
package org.opentutorials.javatutorials.accessmodifier.inner;
public class PublicClass {}
class DefaultClass {}
package org.opentutorials.javatutorials.accessmodifier.outter;
import org.opentutorials.javatutorials.accessmodifier.inner.*;
public class ClassAccessModifierOuterPackage {
PublicClass publicClass = new PublicClass();
//DefaultClass defaultClass = new DefaultClass(); // 다른 패키지이므로 사용 불가
}
abstract class A{
public abstract int b();
//본체가 있는 메소드는 abstract 키워드를 가질 수 없다.
//public abstract int c(){System.out.println("Hello")} // 오류 발생
//추상 클래스 내에는 추상 메소드가 아닌 메소드가 존재 할 수 있다.
public void d(){
System.out.println("world");
}
}
public class AbstractDemo {
public static void main(String[] args) {
A obj = new A(); // 추상 클래스 A를 인스턴스화하면 오류가 발생 (추상 클래스는 구체적인 메소드의 내용이 존재하지 않기 때문)
}
}
abstract class A{
public abstract int b();
public void d(){
System.out.println("world");
}
}
class B extends A{
public int b(){return 1;}
}
public class AbstractDemo {
public static void main(String[] args) {
B obj = new B();
System.out.println(obj.b());
}
}
class Calculator {
static final double PI = 3.14; // final 선언
int left, right;
public void setOprands(int left, int right) {
this.left = left;
this.right = right;
//Calculator.PI = 6; // 변경 안됨
}
}
public class CalculatorDemo1 {
public static void main(String[] args) {
Calculator c1 = new Calculator();
System.out.println(c1.PI);
//Calculator.PI = 10; // 변경 안됨
}
}
class A{
final void b(){}
}
class B extends A{
void b(){} // 상속 안됨
}
final class C{
final void b(){}
}
class D extends C{} // 상속 안됨
interface I{
public void z();
}
class A implements I{
public void z(){} // 반드시 존재해야함
}
package org.opentutorials.javatutorials.interfaces.example2;
public interface Calculatable {
public void setOprands(int first, int second, int third) ;
public int sum();
public int avg();
}
package org.opentutorials.javatutorials.interfaces.example2;
class CalculatorDummy implements Calculatable{
public void setOprands(int first, int second, int third){
}
public int sum(){
return 60;
}
public int avg(){
return 20;
}
}
public class CalculatorConsumer {
public static void main(String[] args) {
CalculatorDummy c = new CalculatorDummy();
c.setOprands(10, 20, 30);
System.out.println(c.sum()+c.avg());
}
}