Download - Review Konsep Dasar Java
![Page 1: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/1.jpg)
REVIEWREVIEWKONSEP DASAR JAVAKONSEP DASAR JAVA
![Page 2: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/2.jpg)
Konsep Object-Oriented
Struktur Program Java
![Page 3: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/3.jpg)
Konsep Object-Oriented Terfokus pada object dan class, berdasarkan skenario pada
dunia nyata Mendeskripsikan state, behavior dan interaction pada
object Keuntungan :
Pengembangan lebih cepat Meningkatkan kualitas Penanganan lebih mudah Dapat dimodifikasi Meningkatkan karakter reusable pada software
Class Digunakan untuk mendefinisikan tipe data baru Blueprint
![Page 4: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/4.jpg)
Object Sebuah entitas yang memiliki state, behavior dan
identity Contoh nyata dari sebuah class Dibuat pada saat class di-instantiate menggunakan keyword
new Contoh: pada Sistem registrasi siswa
Attribut Elemen data dari sebuah object Menyimpan informasi tentang object Alias dari atribut : Data member, instance variable,
property, data field Contoh: pada Sistem registrasi siswa
![Page 5: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/5.jpg)
Method Menyatakan sifat dari sebuah object Disebut juga fungsi atau prosedur Contoh: pada Sistem registrasi siswa
Konstruktor Menyerupai method Untuk membuat dan menginisialisasi sebuah object baru Bukan merupakan anggota dari sebuah object
![Page 6: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/6.jpg)
Package Pengelompokan class atau subpackage Fungsinya sama seperti direktori
Enkapsulasi Suatu prinsip penyembunyian desain atau pengimplementasian informasi yang tidak sesuai pada
object yang ada
Abstraksi Mengabaikan aspek dari subjek yang tidak sesuai dengan tujuan yang ada supaya lebih banyak
mengkonsentrasikan yang ada
![Page 7: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/7.jpg)
Pewarisan Hubungan antara class dimana dalam satu class ada
superclass atau class induk dari class yang lain Mengarah pada properi dan sifat yang diterima dari asalnya Dikenal juga dengan hubungan "is-a"
SuperHero
FlyingSuperHero UnderwaterSuperHero
![Page 8: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/8.jpg)
Polymorfisme "poly" berarti banyak sedangkan "morph" berarti
bentuk Kemampuan dari sebuah object untuk membolehkan
mengambil beberapa bentuk yang berbeda
Interface Sebuah contract dalam bentuk kumpulan method
dan deklarasi konstanta Mengimplementasikan janji pada class untuk
mengikuti contract
![Page 9: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/9.jpg)
Sintaks <classDeclaration> ::= <modifier> class <name> { <attributeDeclaration>* <constructorDeclaration>* <methodDeclaration>* } dimana Modifier
Mengacu pada access modifier atau type lain dari modifier
Name Sebuah identifier pada nama kelas
![Page 10: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/10.jpg)
1 class SuperHero {2 String superPowers[];3 void setSuperPowers(String superPowers[])
{4 this.superPowers = superPowers;5 }6 void printSuperPowers() {7 for (int i = 0; i < superPowers.length;
i++) {8 System.out.println(superPowers[i]);9 }10 }11 }
![Page 11: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/11.jpg)
Sintaks: <attributeDeclaration> ::= <modifier> <type> <name> [= <default_value>];
<type> ::= byte | short | int | long | char | float | double | boolean | <class>
![Page 12: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/12.jpg)
1 public class AttributeDemo {2 private String studNum;3 public boolean graduating = false; 4 protected float unitsTaken = 0.0f;5 String college;6 }
![Page 13: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/13.jpg)
Sintaks: <methodDeclaration> ::= <modifier> <returnType> <name>(<parameter>*) { <statement>* } <parameter> ::= <parameter_type> <parameter_name>[,]
![Page 14: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/14.jpg)
1 class MethodDemo {2 int data;3 int getData() {4 return data;5 }6 void setData(int data) {7 this.data = data;8 }9 void setMaxData(int data1, int data2) {10 data = (data1>data2)? data1 : data2;11 }12}
![Page 15: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/15.jpg)
Sintaks: <constructorDeclaration> ::= <modifier> <className> (<parameter>*) { <statement>* } dimana Modifier
Dapat berupa beberapa acces modifier tetapi bukan tipe modifier lainnya.
Konstruktor secara default Tidak mempunyai argumen Tidak memiliki isi
![Page 16: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/16.jpg)
1 class ConstructorDemo {2 private int data;3 public ConstructorDemo() {4 data = 100;5 }6 ConstructorDemo(int data) {7 this.data = data;8 }9 }
![Page 17: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/17.jpg)
Syntax: new <constructorName>(<parameters>)
Contoh:1. class ConstructObj {2. int data;3. ConstructObj() {4. /* initialize data */5. }6. public static void main(String args[]) {7. ConstructObj obj = new ConstructObj();8. }9. }
![Page 18: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/18.jpg)
Notasi titik: <object>.<member>
Contoh: String myString = new String(“My String”); //Access length method System.out.println(“Length: ” + myString.length());
int intArr = {1, 2, 3, 4, 5}; //Access length attribute System.out.println(“Length: ” + intArr.length);
![Page 19: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/19.jpg)
1 class ConstructObj {2 int data;3 ConstructObj() {4 /* initialize data */5 }6 void setData(int data) {7 this.data = data;8 }9 public static void main(String args[]) {10 ConstructObj obj = new ConstructObj();11 obj.setData = 10; //access setData()12 System.out.println(obj.data); //access data13 }14 }
![Page 20: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/20.jpg)
Sintaks untuk indikasi bahwa kode dimiliki oleh sebuah package: <packageDeclaration> ::= package <packageName>;
Sintaks untuk mengimpor package lainnya: <importDeclaration> ::= import <packageName.elementAccessed>;
Format Source code: [<packageDeclaration>] <importDeclaration>* <classDeclaration>+
![Page 21: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/21.jpg)
1 package registration.reports;2 import registration.processing.*;3 import java.util.List;4 import java.lang.*; //imported by default
5 class MyClass {6 /* details of MyClass */7 }
![Page 22: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/22.jpg)
![Page 23: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/23.jpg)
Menyembunyikan anggota dengan membuatnya private Contoh
1. class Encapsulation {2. private int secret;3. public boolean setSecret(int secret) {4. if (secret < 1 || secret > 100)5. return false;6. this.secret = secret;7. return true;8. }9. public getSecret() {10. return secret;11. }12.}
![Page 24: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/24.jpg)
Membuat class anak atau subkelas: Menggunakan extends dalam
mendeklarasikan class Sintaks:
class <childClassName> extends <parentClassName>
Sebuah class hanya dapat meng-extend satu class induk
![Page 25: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/25.jpg)
1.import java.awt.*;
2.class Point {3. int x;4. int y;5.}
6.class ColoredPoint extends Point {7. Color color;8.}
![Page 26: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/26.jpg)
subclass mendefinisikan method yang bertanda serupa ke method dalam superclass
Tanda pada sebuah method informasi yang ditemukan dalam
definisi method bagian atas Return type Nama method Daftar Parameter pada method
Berbeda dengan method overloading!
![Page 27: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/27.jpg)
1. class Superclass {2. void display(int n) {3. System.out.println("super: " + n);4. }5. }
6. class Subclass extends Superclass {7. void display(int k) {8. System.out.println("sub: " + k);9. }10.}
11.// continued...
![Page 28: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/28.jpg)
14.class OverrideDemo {15. public static void main(String args[]) {16. Subclass SubObj = new Subclass();17. Superclass SuperObj = SubObj;18. SubObj.display(3);19. ((Superclass)SubObj).display(4);20. }21.}
![Page 29: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/29.jpg)
Pemanggilan method Ditentukan oleh tipe data sebenarnya dari object
yang diminta method
Access modifier untuk method yang dibutuhkan tidak harus sama Access modifier pada method overriding
Access modifier yang sama seperti pada method overridden
Access modifier lebih luas
![Page 30: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/30.jpg)
1. class Superclass {2. void overriddenMethod() {3. }4. }5. class Subclass1 extends Superclass {6. public void overriddenMethod() {7. }8. }9. class Subclass2 extends Superclass {10. void overriddenMethod() {11. }12.}13.//continued...
![Page 31: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/31.jpg)
14./* class Superclass {15. void overriddenMethod() {16. }17.} */18.class Subclass3 extends Superclass {19. protected void overriddenMethod() {20. }21.}22.class Subclass4 extends Superclass {23. private void overriddenMethod() {24. }25.}
![Page 32: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/32.jpg)
Sintaks: abstract <modifier> <returnType> <name>(<parameter>*);
Sebuah class yang berisi method abstract harus dideklarasikan sebagai sebuah class abstract. abstract class <name> { /* constructors, fields and methods */ }
![Page 33: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/33.jpg)
Kata kunci abstract tidak dapat digunakan pada : konstruktor Method static
class abstract tidak dapat diinstansiasi
Class yang meng-extends sebuah class abstract : harus mengimplementasikan semua method
abstract Sebaliknya, subclass sendiri harus dideklarasikan
sebagai abstract
![Page 34: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/34.jpg)
1. abstract class SuperHero {2. String superPowers[];3. void setSuperPowers(String superPowers[]) {4. this.superPowers = superPowers;5. }6. void printSuperPowers() {7. for (int i = 0; i < superPowers.length; i++) {8. System.out.println(superPowers[i]);9. }10. }11. abstract void displayPower();12.}13.//continued...
![Page 35: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/35.jpg)
1. class FlyingSuperHero extends SuperHero {2. void displayPower() {3. System.out.println("Fly...");4. }5. }
6. class Spiderman extends SuperHero {7. void displayPower() {8. System.out.println("Communicate with sea" +9. " creatures...");10. System.out.println("Fast swimming ability...");11. }12.}
![Page 36: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/36.jpg)
Sintaks: <interfaceDeclaration> ::= <modifier> interface <name> { <attributeDeclaration>* [<modifier> <returnType> <name>
(<parameter>*);]* }
Anggotanya adalah public ketika interface dideklarasikan sebagai public
![Page 37: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/37.jpg)
Attribut Interface: Secara implisit static dan final Harus diinisialisasi
Modifier: Access modifiers: public, package Harus diinisialisasi
Mengimplementasikan sebuah interface: Menggunakan kata kunci implements Harus mengimplementasikan semua method interface Sebuah class boleh mengimplementasikan lebih dari satu
interface
![Page 38: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/38.jpg)
1. interface MyInterface {2. void iMethod();3. }
4. class MyClass1 implements MyInterface {5. public void iMethod() {6. System.out.println("Interface method.");7. }8. void myMethod() {9. System.out.println("Another method.");10. }11.}12.//continued...
![Page 39: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/39.jpg)
14.class MyClass2 implements MyInterface {15. public void iMethod() {16. System.out.println("Another implementation.");17. }18.}19.class InterfaceDemo {20. public static void main(String args[]) {21. MyClass1 mc1 = new MyClass1();22. MyClass2 mc2 = new MyClass2();23. mc1.iMethod();24. mc1.myMethod();25. mc2.iMethod();26. }27.}
![Page 40: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/40.jpg)
mengapa this?1. Agar tidak ambigu antara attribut
lokal dan variabel lokal2. Menunjuk pada object yang meminta
method non-static3. Menunjuk pada konstruktor lain
![Page 41: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/41.jpg)
1. Agar tidak ambigu antara attribut lokal dan variabel lokal1. class ThisDemo1 {2. int data;3. void method(int data) {4. this.data = data;5. /* 6. this.data refers to the attribute 7. while data refers to the local variable 8. */9. }10.}
![Page 42: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/42.jpg)
1. Menunjuk pada object yang meminta method non-static1. class ThisDemo2 {2. int data;3. void method() {4. System.out.println(data); //this.data5. }6. void method2() {7. method(); //this.method();8. }9. }
![Page 43: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/43.jpg)
Method Overloading Metode berbeda dalam sebuah kelas membagi nama yang
sama Daftar parameter harus berbeda
Jumlah parameter Tipe parameter
Konstruktor dapat juga menjadi overload Contoh:
class MyClass { void myMeth() {} void myMeth(int i) {} void myMeth(int i, int j) {} }
![Page 44: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/44.jpg)
menunjuk versi lain dari konstruktor 1.class ThisDemo3 {2. int data;3. ThisDemo3() {4. this(100);5. }6. ThisDemo3(int data) {7. this.data = data;8. }9.}
![Page 45: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/45.jpg)
Berhubungan dengan pewarisan Digunakan untuk meminta konstruktor superclass Dapat digunakan seperti kata kunci this untuk menunjuk
pada anggota dari superclass
Memanggil konstruktor superclass1. class Person {2. String firstName;3. String lastName;4. Person(String fname, String lname) {5. firstName = fname;6. lastName = lname;7. }8. }
![Page 46: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/46.jpg)
9. //continuation...10.class Student extends Person {11. String studNum;12. Student(String fname, String lname, String sNum) {13. super(fname, lname);14. studNum = sNum;15. }16.}
super() Menunjuk pada superclass dengan segera Harus berada pada pernyataan pertama dalam konstruktor
superclass
![Page 47: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/47.jpg)
Menunjuk anggota superclass 1.class Superclass{2. int a;3. void display_a(){4. System.out.println("a = " + a);5. }6.}
7.//continued...
![Page 48: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/48.jpg)
9. class Subclass extends Superclass {10. int a;11. void display_a(){12. System.out.println("a = " + a);13. }14. void set_super_a(int n){15. super.a = n;16. }17. void display_super_a(){18. super.display_a();19. }20.}
![Page 49: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/49.jpg)
21.class SuperDemo {22. public static void main(String args[]){23. Superclass SuperObj = new Superclass();24. Subclass SubObj = new Subclass();25. SuperObj.a = 1;26. SubObj.a = 2;27. SubObj.set_super_a(3);28. SuperObj.display_a();29. SubObj.display_a();30. SubObj.display_super_a();31. System.out.println(SubObj.a);32. }33.}
![Page 50: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/50.jpg)
Digunakan untuk anggota dari sebuah class : attribut Method Inner class
Mengijinkan untuk mengakses static atau anggota class tanpa instansiasi
Variabel class Bersifat seperti variabel global Dapat diakses oleh semua instance dari kelas
![Page 51: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/51.jpg)
Method class Dapat diambil tanpa membuat sebuah object dari
class tersebut Hanya dapat mengakses anggota static dari class tidak dapat menunjuk pada this dan super
Blok static Hanya dapat dieksekusi sekali, ketika kelas diisi Untuk inisialisasi variabel class
![Page 52: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/52.jpg)
1. class Demo {2. static int a = 0;3. static void staticMethod(int i) {4. System.out.println(i);5. }6. static { //static block7. System.out.println("static block");8. a += 1;9. }10.}
11.//continued...
![Page 53: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/53.jpg)
13.class StaticDemo {14. public static void main(String args[]) {15. System.out.println(Demo.a);16. Demo.staticMethod(5);17. Demo d = new Demo();18. System.out.println(d.a);19. d.staticMethod(0);20. Demo e = new Demo();21. System.out.println(e.a);22. d.a += 3;23. System.out.println(Demo.a+", "+d.a+", "+e.a);24. }25.}
![Page 54: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/54.jpg)
Dapat diaplikasikan pada variabel, method dan class Dibatasi apa yang kita dapat lakukan dengan
variabel, method dan class.
Variabel final Tidak dapat diubah setelah nilainya diset contoh:
final int data = 10; data++;
![Page 55: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/55.jpg)
Method final Tidak dapat di-override contoh:
final void myMethod() { //in a parent class } void myMethod() { //in a child class }
Class final Tidak dapat diwariskan contoh:
final public class MyClass {} class WrongClass extends MyClass {}
![Page 56: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/56.jpg)
Kata kunci dapat diletakkan sebelum setelah modifier lain public final static void meth() {} or final public static void meth() {} or ...
//order of modifiers is not important
![Page 57: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/57.jpg)
Dideklarasikan dalam class lain
Mengakses anggota dari inner class : Membutuhkan sebuah instance dari inner class Example:
innerObj.innerMember = 5; //innerObj is an instance of the inner class
//innerMember is a member of the inner class
![Page 58: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/58.jpg)
Method-method dari inner class dapat secara langsung mengakses anggota dari outer class contoh:
1.class Out {2. int OutData;3. class In {4. void inMeth() {5. OutData = 10;6. }7. }8.}
![Page 59: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/59.jpg)
1. class OuterClass {2. int data = 5;3. class InnerClass {4. int data2 = 10;5. void method() {6. System.out.println(data);7. System.out.println(data2);8. }9. }
10.//continued...
![Page 60: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/60.jpg)
9. public static void main(String args[]) {10. OuterClass oc = new OuterClass();11. InnerClass ic = oc.new InnerClass();12. System.out.println(oc.data);13. System.out.println(ic.data2);14. ic.method();15. }16.}
![Page 61: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/61.jpg)
Konsep Object-Oriented Desain Object-Oriented Class Object Attribut Method Konstruktor
Package Enkapsulasi Abstraksi Pewarisan Polymorfisme Interface
![Page 62: Review Konsep Dasar Java](https://reader035.vdocuments.pub/reader035/viewer/2022062517/5681398f550346895da1255f/html5/thumbnails/62.jpg)
Struktur Program Java Mendeklarasikan class Java Mendeklarasikan Attribut Mendeklarasikan Metode Mendeklarasikan konstruktor Meng-instansiasi sebuah class Mengakses anggota object Package Access Modifier Enkapsulasi
Pewarisan
Method Overriding
Class abstract dan method
Interface
Kata kunci this
Kata kunci super
Kata kunci static
Kata kunci final
Inner Classes