http://ilearning.oracle.com/
J2SE
J2EE
J2ME
Java EE --> enterprise solutions
Java ME --> limited device
Java SE --> desktop solutions
--> application
applet --- browser
+
JVM
/
JRE
/ \
/ standard
/ library
JDK
\
Tools: -compiler
-jar tools
-javadoc
Java App Native App
--------------------- -------------------
J V M O S
---------------------
O S
java
source code -- javac ---> bytecode
(*.java) (*.class)
SDLC:
---------------------------
1. analisys --> 'what'
2. design --> 'how'
3. develop
4. testing
5. deploy/implementation
6. bug & fix/mainteance
7. end of life
class object
--------------------- ------------------------
- variable - attribute
- method - behavior
java source code: file *.java
struktur java source code:
1. deklarasi package [opsional]
dalam satu file .java, hanya boleh ada
satu deklarasi package
2. statement import [opsional]
boleh lebih dari satu (tergantung
kebutuhan)
3. deklarasi class
boleh lebih dari satu, tetapi hanya
boleh satu class yang public (yang
menjadi nama file-nya)
import java.awt.*;
import java.awt.event.*;
Servlet
jar --- java archive
jar tools
jar, javac ---> PATH
java ----> CLASSPATH
Tahapan membuat jar executable (manual)
1. siapkan struktur project (source code, folder)
myprj
|---- classes
|---- src
|---- org
|---- jp
|---- myprj
|---- Student.java
|---- test
|---- TestProject.java
2. compile source code
myprj\src>javac -d ..\classes org\jp\test\*.java
test jalankan main class:
myprj\src>java -cp ..\classes org.jp.test.TestProject
3. buat manifest file (misal namanya MANIFEST.MF)
di folder myprj\classes
isinya:
Manifest-Version: 1.0
Created-By: 1.7.0_76 (Oracle Corporation)
Main-Class: org.jp.test.TestProject
4. buat jar file
myprj\classes>
jar cvfm myproject.jar MANIFEST.MF org
5. test execute jar file
myprj\classes>java -jar myproject.jar
Syntax mendeklarasikan class:
[modifier] class ClassName {
[attribute];
[constructor];
[method];
}
Syntax attribute:
[modifier] type attributeName [=value];
type: - primitive:
logical: boolean
textual: char
integer: byte, short, int, long
floating: float, double
- reference
String, ArrayList, List, StringBuilder, ...
Syntax method:
[modifier] return_type methodName([parameter]*) {
}
return_type: - primitive
- reference
- void
Syntax constructor:
[modifier] ClassName ([parameter]*) {
}
constructor digunakan untuk membuat object dari
sebuah class, syntax-nya mirip dengan method, hanya
saja:
- constructor tidak memiliki return_type
- namanya sama dengan nama class
setiap class PASTI memiliki constructor
kalau tidak dituliskan maka akan dibuatkan default
constructor, dimana default constructor:
- parameter nya kosong
- body nya juga kosong
jika kita menuliskan constructor secara explicit, maka
default constructor akan hilang, jika masih diperlukan
bisa dilakukan OVERLOADING constructor
fungsi lain dari constructor adalah untuk menginisiali-
sasi attribute
Syarat OVERLOADING constructor/method:
- parameter: HARUS berbeda
- return type: BOLEH berbeda
- access modifier: BOLEH berbeda
comments:
- single line comments
//
- multiple line comments (traditional comments)
/*
*/
- documentation comments
/**
*
*
*/
String x = "Hello";
String xy = new String("Hello");
Wrapper Class
-------------------------------------------
boolean Boolean
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
Encapsulation = membungkus
-----------------------------------
==> information hiding (penyembunyian data)
tujuannya supaya data/variable digunakan dengan
aturan yang sudah ditentukan
Dilakukan dengan:
- memberikan access modifier private pada variable
- menyediakan accessor(getter) dan atau mutator
(setter)
Single inheritance, satu class hanya bisa meng-extends
ke satu parent
Array
---------------------------------------------------
1. declaration
int [] a, b, c; int [][]matrix;
int a [], b, c; int []matrix[];
int matrix[][];
2. intstantiation
a = new int [4]; matrix = new int[3][4]; ==> RECTANGULAR
matrix = new int[3][]; ==> IRECTANGULAR
matrix[0] = new int[4];
matrix[1] = new int[3];
matrix[2] = new int[2];
3. initialization
a[0] = 10; matrix[0][2] = 100;
a[1] = 20; matrix[1][1] = 200;
a[2] = 30; matrix[2][3] = 300;
a[3] = 40;
---------------------------------------------------------------------------
int a[] = {10, 20, 30, 40};
int a[]; XXXXXXX
a = {10,20,30,40}; XXXXXXX
int [][]matrix = { { 0 , 1 } , { 2 , 3 , 4 } , { 5 , 6 , 7 , 8 } };
------------------------------------------------------------------------
Collection: object yang berisi kumpulan object yang
dikenal sebagai element-nya
List: - ordered (ada urutan)
- allow duplication (dua object identik bisa di-
tambahkan lebih dari satu kali)
Dua object dikatakan identik JIKA:
- equals: true
- hashCode: sama
Set: - unordered
- tidak boleh ada duplikasi
JDK1.5 ==> auto-boxing dan auto-unboxing
perubahan dari primitive ke reference
bisa dilakukan secara otomatis (tidak perlu
dituliskan secara explicit)
Overriding:
================
menuliskan ulang method yang sudah didefinisikan
di class Parent, tetapi dengan implementasi yang ber
beda
syarat overriding:
- nama method: HARUS SAMA
- parameter: HARUS SAMA
- return type: SAMA atau TURUNANNYA
- access modifier: SAMA atau MORE ACCESSIBLE
access same same inheri- univer-
modifier: class package tance sal
=========================================
private V X X X
default V V X X
protected V V V X
public V V V V
DIWARISKAN != DIAKSES
Constructor class Child harus memanggil constructor
class Parent. Jika tidak dilakukan maka akan dibuat-
kan kata-kata super() di baris pertama dari constructor
Child, yang artinya akan memanggil constructor
Parent yang tanpa parameter, jika tidak ditemukan
maka akan terjadi error pada saat dicompile.
GUI
----------------------------
- container
Window -- BorderLayout
Panel -- FlowLayout
- component
- layout manager
setBounds(x,y,w,h) ---- setLocation(x,y)
setSize(w,h)
DAY 2
=============
variable berdasarkan letaknya, dibedakan menjadi 2:
- local variable:
* variable yang didefine di dalam method
(bisa sebagai parameter ataupun di dalam
body dari method)
* temporary/stack
* memerlukan inisialisasi secara explicit sebelum
digunakan
- instance variable:
* variable yang didefine di dalam class
(di luar method)
* attribute
* otomatis akan diinisialisasi ke default value
dari type-nya
int a = 10;
int b = a;
a = 100;
MyDate today =
new MyDate(19,5,2015);
MyDate x = today;
x.setMonth(10);
today =
new MyDate(1,1,2000);
x =
new MyDate(2,2,2002);
member dari sebuah class, bisa dibedakan
menjadi 2 macam:
- instance member ---> non static
- class member ---> static
Mammals
------------------
- eat()
- breath()
Cat Dog Sheep
------- --------- --------------
- eat() - eat() - eat()
- breath() - breath() - breath()
- miauw() - bark() - mbaaa()
abstract --- method, class
method abstract --> method yang tidak memiliki
implementasi (hanya deklarasi)
jika di dalam sebuah class terdapat method abstract
maka class-nya harus dideklarasikan sebagai abstract
class
abstract class bisa memiliki method non-abstract
abstract class tidak bisa diinstantiate
untuk membuat object dari abstract class --->
polymorphism, gunakan turunan-nya yang non-abstract
turunan dari abstract class harus mengimplementasikan
semua abstract method yang ada di parent-nya,
atau bisa tidak mengimplentasikan tetapi harus didekla-
rasikan sebagai abstract class
mengimplementasikan abstract method = melakukan
overriding dengan menghilangkan kata2 abstract
interface
--------------------------
didefinisikan untuk memenuhi kebutuhan yang generic
di interface, by default:
- semua method-nya adalah public abstract
- tidak boleh ada method dengan implementasi
- semua variable: public static final
final ----> variable, method, class
- final variable -> constants
- final method -> tidak bisa di override
- final class -> tidak bisa di extends
ResultSet
-------------------------------------------------
Statement
-------------------------------------------------
Connection
-------------------------------------------------
Driver
inheritance
overriding
polymorphism
virtual method invocation
casting object
boolean
byte - short - int - long - float - double
/
char
int a = 10;
double b = a; --- promotion ---> double b = (double)a;
\---> implicit (upcasting)
double c = 7.8;
int d = c; XXX --- casting ---> int d = (int) c;
\---> explicit (downcasting)
byte e = 10;
byte f = 11;
byte g = e + f; XXX ----> byte g = (byte)(e + f);
| |
V V
int int ===> int
float h = 8.8; XXX ===> float h = 8.8F;
float h = 8.8f;
1000 ---> int
1000L ---> long
Collection: object yang berisi kumpulan object yang
dikenal sebagai element-nya
List: - ordered (ada urutan)
- allow duplication (dua object identik bisa di-
tambahkan lebih dari satu kali)
Dua object dikatakan identik JIKA:
- equals: true
- hashCode: sama
Set: - unordered
- tidak boleh ada duplikasi
Map: setiap element berisi sepasang key-value
key dari setiap element harus unique
satu key hanya bisa memiliki satu value
JDK1.5 --> enum
JDK1.4 --> assert
JDK1.2 --> strictfp
String a = "Hello";
a = a + " apa kabar";
Exception:
- unchecked exception: exception yang akan dicek
pada saat program dieksekusi, pada saat program
dicompile akan diabaikan
semua turunan RuntimeException
semua turunan Error
- checked exception: exception yang akan dicek
pada saat program dicompile
semua turunan Exception kecuali
RuntimeException
by default assertion masih disable
untuk mengaktifkan assertion: java -ea
java -enableassertions
java [VM Options] ClassName [Arguments]
java -ea ClassName
JUnit
variable arguments --> JDK1.5
marker interface
0 komentar:
Posting Komentar