#멋쟁이사자처럼 #부트캠프 #백엔드 #JAVA
public class Book {
private String title;
private Author author;
public Book(String title) {
this.title = title;
this.author = new Author();
}
public void printBookDetails() {
System.out.println("Book Title: " + title);
System.out.println("Author: " + getAuthor().getName());
}
public class Author {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public Author getAuthor() {
return author;
}
public void setAuthor(Author author) {
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
public class Main {
public static void main(String[] args) {
Book book = new Book("Java");
book.getAuthor().setName("강경미");
book.printBookDetails();
}
}
public class OuterClass {
private int outerField = 10;
private InnerClass innerClass;
public void outerMethod() {
InnerClass inner = new InnerClass();
inner.innerMethod();
}
public class InnerClass {
public void innerMethod() {
// InnerClass has access to private fields of its outer class.
System.out.println("outerField" + outerField);
}
}
}
public class Main {
public static void main(String[] args) {
OuterClass outerClass = new OuterClass();
outerClass.outerMethod();
}
}
public class LocalOuterClass {
private int outerField = 10;
public void outerMethod() {
class InnerClass {
public void innerMethod() {
System.out.println("outerField: " + outerField);
}
}
InnerClass inner = new InnerClass();
inner.innerMethod();
}
public static void main(String[] args) {
LocalOuterClass outerClass = new LocalOuterClass();
outerClass.outerMethod();
}
}
public class StaticOuterClass {
private int outerField = 10;
private static int staticOuterField = 10;
public void outerMethod() {}
static class InnerClass {
public void innerMethod() {
System.out.println(staticOuterField);
}
public static void staticInnerMethod() {
System.out.println("static");
}
}
public static void main(String[] args) {
StaticOuterClass.InnerClass inner =
new StaticOuterClass.InnerClass();
inner.innerMethod();
StaticOuterClass.InnerClass.staticInnerMethod();
}
}
The modifiers for classes, methods, and member variables are written in the following order as specified in the Java Language Specification: