Pengantar Pemrograman Java oleh Vikas Singh
Pengantar Pemrograman Java oleh Vikas Singh
CATATAN KULIAH
pada
PEMOGRAMAN DALAM "C"
Oleh
UNIT-I
OOP Concepts:-Data abstraction, encapsulation, inheritance, Benefits of Inheritance,
Polimorfisme, kelas dan objek, paradigma pemrograman prosedural dan berorientasi objek.
Pemrograman Java - Sejarah Java, komentar, Tipe data, Variabel, Konstanta, Lingkup dan
Umur variabel, Operator, Hierarki Operator, Ekspresi, Konversi tipe dan casting,
Tipe data yang terenumerasi, Alur kontrol - ruang lingkup blok, pernyataan bersyarat, loop, break dan continue
pernyataan, program java mandiri sederhana, array, input dan output konsol, format output
konstruktor, metode, pengiriman parameter, field dan metode statis, kontrol akses, referensi ini
overloading metode dan konstruktor, rekurisi, pengumpulan sampah, membangun string, menjelajahi
kelas string.
UNIT–II
Inheritance–Inheritance hierarchies super and sub classes, Member access rules, super
kata kunci, mencegah pewarisan: kelas dan metode final, kelas Object dan metode-metodenya.
Polimorfisme–pengikatan dinamis, penggantian metode, kelas dan metode abstrak.
Antarmuka-Antarmuka Vs Kelas Abstrak, mendefinisikan antarmuka, mengimplementasikan antarmuka, mengakses
implementasi melalui referensi antarmuka, memperluas antarmuka.
Kelas dalam - Penggunaan kelas dalam, kelas dalam lokal, kelas dalam anonim, kelas dalam statis
kelas, contoh.
Packages-Defining, creating and accessing a package, Understanding CLASSPATH, importing
paket.
UNIT-III
Penanganan pengecualian - Menangani kesalahan, manfaat penanganan pengecualian, klasifikasi
eksepsi - hierarki eksepsi, eksepsi yang diperiksa dan eksepsi yang tidak diperiksa, penggunaan try,
catch, throw, throws and finally, rethrowing exceptions, exception specification, built in
eksepsi, membuat subclass eksepsi sendiri.
Multithreading–Perbedaan antara beberapa proses dan beberapa utas, status utas,
membuat thread, menginterupsi thread, prioritas thread, menyinkronkan thread, antar-thread
komunikasi, pola produsen konsumen, Menjelajahi [Link] dan java.
UNIT-IV
Applet–Konsep Applet, perbedaan antara applet dan aplikasi, siklus hidup sebuah applet,
jenis-jenis applet, membuat applet, mengirim parameter ke applet.
Penanganan Acara: Acara, Penanganan acara mouse dan keyboard, Kelas adaptor.
Files-Streams- Byte streams, Character streams, Text input/output.
Tuan Vikas Singh Unduh Aplikasi Coding Seekho dari Playstore
UNIT-V
Pemrograman GUI dengan Java–hierarki kelas AWT, komponen, kontainer, panel, jendela, bingkai
grafis.
Kontrol AWT: Label, tombol, bidang teks, kotak centang, dan grafik.
Manajer Layout–Tipe manajer layout: border, grid, dan flow.
Swing–Pengenalan, keterbatasan AWT, Swing vs AWT.
BUKU TEKS:
1. Dasar-Dasar Java – Pengenalan yang Komprehensif, Herbert Schildt dan Dale Skrien
TMH.
REFERENCE BOOKS:
[Link] untuk Programmer, [Link] dan [Link], PEA (atau) Java: Cara Memprogram,
[Link] dan [Link], PHI
[Link] Berbasis Objek melalui Java, P. Radha Krishna, UniversitiesPress.
[Link] dalam Java, Bruce Eckel,PE
4. Pemrograman dalam Java, S. Malhotra dan S. Choudhary, Pers Universitas Oxford.
Course Outcomes:
• Pemahaman tentang prinsip dan praktik analisis dan desain berorientasi objek
pembangunan program yang kuat dan mudah dipelihara yang memenuhi persyaratan mereka;
• Kompetensi untuk merancang, menulis, mengompilasi, menguji, dan mengeksekusi program yang sederhana menggunakan
bahasa tingkat tinggi
• Sebuah penghargaan terhadap prinsip-prinsip pemrograman berorientasi objek;
• Sebuah kesadaran akan perlunya pendekatan profesional terhadap desain dan pentingnya
dokumentasi yang baik untuk program yang selesai.
• Be able to implement, compile, test and run Java programs comprising more thanone
kelas, untuk menangani masalah perangkat lunak tertentu.
• Tunjukkan kemampuan untuk menggunakan struktur data sederhana seperti array dalam program Java.
• Be able to make use of members of classes found in the Java API (such as the Mathclass).
Tuan Vikas Singh Unduh Aplikasi Coding Seekho dari Playstore
INDeks
2 Manfaat Warisan 2
Saya
14 Aku Bidang dan metode statis, kontrol akses, referensi ini, 21-30
Konsep OOP
Pemrograman Berorientasi Objek adalah sebuah paradigma yang menyediakan banyak konsep seperti
Smalltalk dianggap sebagai bahasa pemrograman berorientasi objek yang pertama kali dan sejati.
Objek berarti entitas dunia nyata seperti pena, kursi, meja, dll. Pemrograman Berorientasi Objek adalah
sebuah metodologi atau paradigma untuk merancang program menggunakan kelas dan objek. Ini menyederhanakan
pengembangan perangkat lunak dan pemeliharaan dengan memberikan beberapa konsep:
o Objek
o Kelas
o Warisan
o Polimorfisme
o Abstraksi
o Enkapsulasi
Objek
Setiap entitas yang memiliki keadaan dan perilaku dikenal sebagai objek. Misalnya: kursi, pena, tabel,
keyboard, sepeda, dll. Ini bisa bersifat fisik dan logis.
Kelas
Warisan
Ketika satu objek memperoleh semua sifat dan perilaku objek induk, yaitu dikenal sebagai
inheritance. It provides code reusability. It is used to achieve runtime polymorphism.
Polimorfisme
Ketika satu tugas dilakukan dengan cara yang berbeda, itu dikenal sebagai polimorfisme. Sebagai contoh:
yakinkan pelanggan dengan cara yang berbeda, untuk menggambar sesuatu misalnya bentuk atau persegi panjang dll.
Dalam java, kita menggunakan overloading metode dan overriding metode untuk mencapai polimorfisme.
Contoh lain bisa jadi berbicara sesuatu misalnya kucing berbicara meow, anjing menggonggong woof
[Link]
Menyembunyikan rincian internal dan menampilkan fungsionalitas dikenal sebagai abstraksi. Contohnya: telepon
panggilan, kami tidak tahu pemrosesan internal.
Dalam java, kita menggunakan kelas abstrak dan antarmuka untuk mencapai abstraksi.
Pemusatan
Pengikatan (atau membungkus) kode dan data bersama-sama menjadi satu unit dikenal sebagai enkapsulasi.
Misalnya: kapsul, itu dibungkus dengan berbagai obat.
Sebuah kelas java adalah contoh dari enkapsulasi. Java bean adalah kelas yang sepenuhnya terenkapsulasi karena semua
Anggota data bersifat pribadi di sini.
Manfaat Warisan
• Salah satu manfaat utama dari pewarisan adalah meminimalkan jumlah kode duplikat dalam
aplikasi dengan membagikan kode yang umum di antara beberapa subclass. Di mana kode yang setara
ada dalam dua kelas terkait, hierarki biasanya dapat direfaktor untuk memindahkan yang umum
kode hingga superclass bersama. Ini juga cenderung menghasilkan organisasi kode yang lebih baik dan
unit kompilasi yang lebih kecil dan lebih sederhana.
• Pewarisan juga dapat membuat kode aplikasi lebih fleksibel terhadap perubahan karena kelas-kelas yang
mewarisi dari superclass yang sama dapat digunakan secara bergantian. Jika tipe kembalian dari a
metode issuperclass
• Pemakaian ulang - fasilitas untuk menggunakan metode publik dari kelas dasar tanpa menulis ulang yang sama.
• Extensibility- extending the base class logic as per business logic of the derivedclass.
• Penyembunyian data - kelas dasar dapat memutuskan untuk menyimpan beberapa data sebagai pribadi sehingga tidak dapat diakses.
Sejarah dari java dimulai dari Tim Hijau. Anggota tim Java (juga dikenal sebagai
Tim Hijau), memulai tugas revolusioner untuk mengembangkan bahasa untuk digital
perangkat seperti set-top box, televisi, dll.
Bagi anggota tim hijau, itu adalah konsep maju pada saat itu. Tapi, itu adalah
cocok untuk pemrograman internet. Kemudian, teknologi Java yang diintegrasikan oleh
Netscape.
Saat ini, Java digunakan dalam pemrograman internet, perangkat mobile, permainan, bisnis elektronik
solusi dll. Ada beberapa poin utama yang menggambarkan sejarah java.
2) Awalnya dirancang untuk sistem kecil yang tertanam dalam peralatan elektronika seperti set-
topboxes.
3) Pertama-tama, itu disebut "Greentalk" oleh James Gosling dan ekstensi file adalah .gt.
4) Setelah itu, ia disebut Oak dan dikembangkan sebagai bagian dari Green
proyek.
Ada banyak versi Java yang telah dirilis. Rilis stabil Java saat ini
adalah Java SE 8.
Features of Java
Ada banyak fitur dari java. Mereka juga dikenal sebagai buzzword java. Fitur Java
berikut adalah simple dan mudah dipahami.
[Link]
2. Berorientasi Objek
[Link]
[Link] tergantung platform
[Link]
Kuat
[Link] Arsitektur
[Link]
[Link]
[Link]
[Link]
[Link]
Komentar Java
Komentar java adalah pernyataan yang tidak dieksekusi oleh compiler dan interpreter.
comments can be used to provide information or explanation about the variable, method,class or
pernyataan apapun. Ini juga dapat digunakan untuk menyembunyikan kode program untuk waktu tertentu.
Sintaksis:
Example:
public classCommentExample1 {
publik statis voidmain(String[] args) {
inti=10;//Here, i is a variable
[Link](i);
}
}
Output:
10
Sintaksis:
/*
Ini
adalah
multi line
komentar
*/
Contoh:
publik classCommentExample2 {
publik statis void utama(String[] args) {
/* Mari kita deklarasikan dan
Keluaran:
10
The documentation comment is used to create documentation API. To create documentation API, you need
untuk menggunakan alat javadoc.
Sintaksis:
/**
Ini
adalah
dokumentasi
komentar
*/
Contoh:
/** Kelas Calculator menyediakan metode untuk mendapatkan penjumlahan dan pengurangan dari 2 angka yang diberikan.*/
public classCalculator {
/** Metode add() mengembalikan penjumlahan dari angka yang diberikan.*/
javac [Link]
javadoc [Link]
Sekarang, akan ada berkas HTML yang dibuat untuk kelas Kalkulator Anda di direktori saat ini. Buka HTML
file-file dan lihat penjelasan tentang kelas Calculator yang disediakan melalui komentar dokumentasi.
Tipe Data
Tipe data mewakili nilai-nilai yang berbeda untuk disimpan dalam variabel. Di java, terdapat dua tipe data:
karakter 2 byte
byte 0 1 byte
short 0 2 byte
int 0 4 byte
panjang 0L 8 byte
Output:20
Jenis Variabel
Ada tiga jenis variabel di java:
o variabel lokal
o variabelinstans
o variabel statis
Variabel Lokal
2) Variabel Instance
Sebuah variabel yang dideklarasikan di dalam kelas tetapi di luar metode, disebut variabel instans. Itu
tidak dinyatakan sebagai statis.
Variabel Statis
Sebuah variabel yang dideklarasikan sebagai statis disebut variabel statis. Variabel ini tidak bisa bersifat lokal.
classA{
intdata=50;//instance variable
static intm=100;//variabel statis
voidmetode(){
intn=90;//variabel lokal
}
}//akhir kelas
Konstanta di Java
Konstanta adalah variabel yang tidak dapat mengubah nilainya setelah dideklarasikan. Ini menggunakan 'final'
kata kunci.
Syntax
modifikator dataTipe final variabelNama = nilai;//konstanta global
variabel adalah sama. Yang dinyatakan di dalam tubuh sebuah metode berbeda dari yang lainnya
yang dideklarasikan di dalam kelas itu sendiri. Ada tiga jenis variabel: variabel instans,
parameter formal atau variabel lokal dan variabel lokal.
Variabel instance
Variabel instance adalah yang didefinisikan di dalam kelas itu sendiri dan bukan di dalam metode mana pun.
konstruktor kelas. Mereka dikenal sebagai variabel instance karena setiap instance dari
kelas (objek) berisi salinan dari variabel-variabel ini. Ruang lingkup variabel instan ditentukan
oleh spesifikasi akses yang diterapkan pada variabel-variabel ini. Kami sudah melihat tentang itu sebelumnya.
Masa hidup variabel-variabel ini sama dengan masa hidup objek yang dimilikinya.
Objek yang sekali dibuat tidak ada selamanya. Mereka dihancurkan oleh pengumpul sampah Java.
ketika tidak ada lagi referensi ke objek tersebut. Kita akan membahas tentang pengumpulan sampah otomatis Java
kolektor nantinya.
Variabel argumen
Ini adalah variabel yang didefinisikan dalam konstruktor header oaf atau sebuah metode. Ruang lingkup
dari variabel-varian ini adalah metode atau konstruktor di mana mereka didefinisikan. Masa hidup adalah
dibatasi pada waktu di mana metode terus dieksekusi. Setelah metode selesai
eksekusi, variabel-variabel ini dihancurkan.
Variabel lokal
Variabel lokal adalah variabel yang dideklarasikan di dalam metode atau konstruktor (bukan di dalam
header). Lingkup dan masa hidup terbatas pada metode itu sendiri.
Satu perbedaan penting antara ketiga jenis variabel ini adalah bahwa spesifikasi akses dapat
hanya dapat diterapkan pada variabel instance dan bukan pada variabel argumen atau variabel lokal.
Selain variabel lokal yang didefinisikan dalam suatu metode, kami juga memiliki variabel yang didefinisikan
dalam kehidupan boks ada blok if dan blok else. Lingkup dan sama dengan blok tersebut
itu sendiri.
Operator di java
Operator dalam java adalah simbol yang digunakan untuk melakukan operasi. Contohnya: +, -, *, / dll.
o UnaryOperator
o OperatorAritmatika
o shiftOperator,
o RelationalOperator,
o OperatorBitwise
o OperatorLogika
o Operator Ternary dan
o OperatorPenugasan.
Hierarki Operator
Expressions
Ekspresi adalah blok bangunan penting dari setiap program Java, biasanya dibuat untuk menghasilkan yang baru.
nilai, meskipun kadang-kadang sebuah ekspresi hanya menetapkan nilai ke sebuah variabel. Ekspresi adalah
dibangun menggunakan values,variabel, operator dan panggilan metode.
Jenis Ekspresi
Sementara sebuah ekspresi sering kali menghasilkan hasil, tidak selalu demikian. Ada tiga jenis
ekspresi dalam Java:
sejauh elemen yang luas seperti pemanggilan metode atau operator penambahan yang mengubah
status (yaitu memori) dari sebuah program.
Sebagai contoh, dalam Java tipe data numerik saling kompatibel satu sama lain tetapi tidak otomatis
konversi didukung dari tipe numerik ke char atau boolean. Juga, char dan boolean tidak
kompatibel dengan setiap lain.
Enum Java
Enum di Java adalah tipe data yang berisi sekumpulan konstanta tetap.
Ini dapat digunakan untuk hari-hari dalam seminggu (MINGGU, SENIN, SELASA, RABU,
KAMIS, JUMAT dan SABTU, arah (UTARA, SELATAN, TIMUR dan BARAT)
dll. Konstanta enum java bersifat statis dan final secara implisit. Ini tersedia sejak JDK 1.5.
Java Enums can be thought of as classes that have fixed set of constants.
Pernyataan alur kontrol di Java memungkinkan Anda untuk menjalankan atau melewatkan blok kode ketika khusus
syarat terpenuhi.
Pernyataan "jika"
Pernyataan "if" dalam Java bekerja persis seperti di sebagian besar bahasa pemrograman. Dengan bantuan dari
“jika” Anda dapat memilih untuk mengeksekusi blok kode tertentu ketika kondisi yang telah ditentukan terpenuhi. Yang
jika(kondisi) {
// jalankan kode ini
}
Kondisinya adalah Boolean. Boolean berarti itu bisa benar atau salah. Misalnya, Anda bisa menempatkan sebuah
persamaan matematis sebagai syarat. Lihat contoh lengkap ini:
Selanjutnya, temukan ikon "Komputer Saya" (di menu Mulai atau desktop Anda), klik kanan padanya, dan pilih
properti. Klik pada tab Lanjutan, dan kemudian klik pada tombol variabel Lingkungan.
Lihat variabel yang terdaftar untuk semua pengguna, dan klik pada variabel Path. Jangan hapus
isi dari variabel ini! Sebagai gantinya, edit isi dengan memindahkan kursor ke ujung kanan,
masukkan titik koma (;), dan tekan Ctrl-V untuk menempelkan jalur yang Anda salin sebelumnya. Kemudian pergi
silakan simpan perubahan Anda. (Jika Anda memiliki jendela Cmd terbuka, Anda perlu menutupnya)
mereka.)
[Link] Anda menggunakan Windows, buka menu Mulai dan ketik "cmd" untuk menjalankan program yang
membuka jendela prompt perintah. Jika Anda menggunakan mesin Mac atau Linux, jalankan
Program terminal untuk membuka command prompt.
11. Di Windows, ketik dir di prompt perintah untuk mencantumkan isi dari direktori saat ini.
Di mesin Mac atau Linux, ketik ls untuk melakukannya.
12. Sekarang kita ingin beralih ke direktori/folder yang berisi kode yang telah Anda kompilasi. Lihatlah
daftar sub-direktori dalam direktori ini, dan identifikasi mana yang berisi kode Anda.
Ketik cd diikuti dengan nama direktori tersebut, untuk berpindah ke direktori itu. Misalnya, untuk
beralih ke direktori yang disebut Desktop, Anda akan mengetik:
cd Desktop
cd ..
Setiap kali Anda berpindah ke direktori baru, daftar isi direktori tersebut untuk melihat ke mana harus pergi.
selanjutnya. Lanjutkan untuk mencantumkan dan mengubah direktori sampai Anda mencapai direktori yang berisi
file .class Anda.
13. Jika Anda mengompilasi program Anda menggunakan Java 1.6, tetapi berencana untuk menjalankannya di Mac, Anda perlu
kompil ulang kode Anda dari baris perintah, dengan mengetik:
[Link] kita akan membuat satu berkas JAR yang berisi semua berkas yang diperlukan untuk menjalankan program Anda.
Array
Java menyediakan struktur data, array, yang menyimpan koleksi berurutan dengan ukuran tetap dari
elemen dari jenis yang sama. Sebuah array digunakan untuk menyimpan koleksi data, tetapi sering kali lebih
berguna untuk memandang array sebagai kumpulan variabel dari tipe yang sama.
Alih-alih mendeklarasikan variabel individu, seperti number0, number1, ..., dan number99, Anda
deklarasikan satu variabel array seperti angka dan gunakan angka[0], angka[1], dan ...
numbers[99] untuk merepresentasikan variabel individu.
Tutorial ini memperkenalkan cara untuk mendeklarasikan variabel array, membuat array, dan memproses array menggunakan
variabel terindeks.
Contoh:
atau
doublemyList[]; // berfungsi tetapi bukan cara yang diutamakan.
Membuat Array:
Anda dapat membuat array dengan menggunakan operator baru dengan sintaks berikut:
arrayRefVar=newdataType[arraySize];
Pernyataan di atas melakukan dua hal:
Mendeklarasikan variabel array, membuat array, dan menetapkan referensi array tersebut ke
variabel dapat digabungkan dalam satu pernyataan, seperti yang ditunjukkan di bawah ini:
dataType[]arrayRefVar=newdataType[arraySize];
Anda juga bisa membuat array sebagai berikut:
Contoh:
Pernyataan berikut mendeklarasikan variabel array, myList, yang membuat array dengan 10 elemen dari
tipe double dan menetapkan referensinya ke myList:
Memproses Array:
Ketika memproses elemen array, kita sering menggunakan baik perulangan for atau perulangan untuk setiap karena semua dari
elemen dalam array memiliki tipe yang sama dan ukuran array diketahui.
Contoh:
Berikut adalah contoh lengkap tentang cara membuat, menginisialisasi, dan memproses array:
1.9
2.9
3.4
3.5
Totalis11.7
Maxis3.5
publik kelas TesArray{
publik statis void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Cetak semua elemen array
untuk(doubleelement:dalamDaftarSaya) {
[Link](element);
}}}
Kelas Java Console digunakan untuk mendapatkan input dari konsol. Ini menyediakan metode untuk membaca teks dan
kata sandi.
Jika Anda membaca kata sandi menggunakan kelas Console, itu tidak akan ditampilkan kepada pengguna.
Kelas [Link] terhubung dengan konsol sistem secara internal. Kelas Console adalah
diperkenalkan sejak 1.5.
Mari kita lihat contoh sederhana untuk membaca teks dari konsol.
1. Stringtext=[Link]().readLine();
2. [Link]("Teks adalah:"+text);
import [Link];
kelasBacaStringTes{
publik statis void utama(String args[]){
Console c=[Link]();
[Link]("Masukkan nama Anda: ");
String n=[Link]();
[Link]("Selamat datang"+n); } }
Keluaran
Konstruktor
Konstruktor dalam java adalah tipe metode khusus yang digunakan untuk menginisialisasi objek.
Konstruktor Java dipanggil pada saat pembuatan objek. Ia membangun nilai-nilai yaitu memberikan data.
untuk objek itulah ia dikenal sebagai konstruktor.
[Link] Terparameter
Sebuah konstruktor yang tidak memiliki parameter dikenal sebagai konstruktor default..
Dalam contoh ini, kami sedang membuat konstruktor tanpa argumen di kelas Bike. Itu akan dipanggil pada
waktu pembuatan objek.
kelasSepeda1{
Bike1(){[Link]("Sepeda dibuat");}
publik statis void main(String args[]){
Bike1 b=newBike1();
}}
Sepeda dibuat
Student4(inti,String n){
id = i;
name = n;
}
voiddisplay(){[Link](id+" "+name);}
Output:
111Karan
222Aryan
Overloading konstruktor adalah teknik dalam Java di mana sebuah kelas dapat memiliki sejumlah yang tidak terbatas dari
konstruktor yang berbeda dalam daftar parameter. Kompilator membedakan konstruktor ini dengan
taking into account the number of parameters in the list and their type.
[Link]();
}}
Output:
111 Karan 0
222 Aryan 25
CopyConstructor Java
Tidak ada konstruktor salinan di java. Tetapi, kita dapat menyalin nilai dari satu objek ke objek lainnya seperti
copy constructor di C++.
Ada banyak cara untuk menyalin nilai dari satu objek ke objek lain di java. Mereka adalah:
oOleh kontraktor
oDengan menetapkan nilai suatu objek ke objek lain
oDengan metode clone() dari kelas Object
Dalam contoh ini, kami akan menyalin nilai dari satu objek ke objek lain menggunakan java
konstruktor.
kelasSiswa6{
intid
NamaString;
Student6(inti,String n){
id = i;
name = n;
}
Student6(Student6 s){
id = [Link];
name =[Link];
}
void tampilkan(){[Link](id+" "+name);}
Output:
111Karan
111Karan
Java - Metode
Metode Java adalah kumpulan pernyataan yang dikelompokkan bersama untuk melakukan suatu operasi.
Ketika Anda memanggil metode [Link](), misalnya, sistem sebenarnya mengeksekusi
beberapa pernyataan untuk menampilkan pesan di konsol.
Sekarang Anda akan belajar bagaimana membuat metode Anda sendiri dengan atau tanpa nilai kembali, memanggil
metode dengan atau tanpa parameter, dan terapkan abstraksi metode dalam desain program.
Membuat Metode
Mempertimbangkan contoh berikut untuk menjelaskan sintaks sebuah metode −
Sintaksis
• int−returntype
• a, b− parameter formal
Definisi metode terdiri dari header metode dan isi metode. Hal yang sama ditunjukkan di dalam
ikuti sintaksis −
Sintaksis
• modifier−Ini mendefinisikan jenis akses dari metode dan bersifat opsional untuk digunakan.
• method body−The method body defines what the method does with thestatements.
Panggilan dengan Nilai dan Panggilan dengan Referensi di Java
Dalam Java hanya ada pemanggilan dengan nilai, bukan pemanggilan dengan referensi. Jika kita memanggil sebuah metode dengan mengoper sebuah nilai, itu
dikenal sebagai panggilan berdasarkan nilai. Perubahan yang dilakukan di metode yang dipanggil, tidak mempengaruhi di
memanggil metode.
Dalam kasus panggilan dengan nilai, nilai asli tidak berubah. Mari kita ambil contoh sederhana:
kelasOperasi{
intdata=50;
voidchange(intdata){
data=data+100;//perubahan hanya akan terjadi pada variabel lokal saja
}
publik statis void main(String args[]){
Operasi op=newOperation();
[Link]("sebelum perubahan " + [Link]);
[Link](500);
[Link]("setelah perubahan " + [Link]);
}
}
Output:before change 50
setelah perubahan 50
Di Java, parameter selalu diteruskan dengan nilai. Misalnya, program berikut mencetak
i = 10, j = 20.
// [Link]
kelas Uji {
// swap() tidak menukar i dan j
publik statis void tukar(Integer i, Integer j) {
Integer temp = new Integer(i);
i = j;
j = temp;
}
public static void main(String[] args) {
Integer i = new Integer(10);
Integer j = new Integer(20);
tukar(i, j);
[Link]("i = " + i + ", j = " + j);
}
}
Kata kunci static dalam java digunakan terutama untuk manajemen memori. Kita dapat menerapkan static java
kata kunci dengan variabel, metode, blok, dan kelas bersarang. Kata kunci statis milik kelas
daripada instance kelas.
[Link]
[Link] bersarang
Jika Anda mendeklarasikan suatu variabel sebagai statis, itu dikenal sebagai variabel statis.
o Variabel statis dapat digunakan untuk merujuk pada properti umum dari semua objek (yang tidak unik untuk
setiap objek) misalnya nama perusahaan karyawan, nama perguruan tinggi mahasiswa dll.
o Variabel statis mendapatkan memori hanya sekali di area kelas pada saat pemuatan kelas.
Ini membuat program Anda efisien dalam penggunaan memori (yaitu, menghemat memori).
String nama;
staticString college ="ITS";
Siswa8(intr,String n){
rollno =r;
name =n;
}
voidtampilkan (){[Link](rollno+" "+name+" "+kampus);}
publik statis void main(String args[]){
Siswa8 s1 = newSiswa8(111, "Karan");
Student8 s2 = new Student8(222, "Aryan");
[Link]();
[Link]();
}}
111 KaranITS
222 AryanITS
Jika Anda menerapkan kata kunci statis pada metode apa pun, itu dikenal sebagai metode statis.
kelasSiswa9{
introllno
String nama;
staticString perguruanTinggi ="ITS";
statik void perubahan(){
college ="BBDIT";
}
Siswa9(intr, String n){
rollno =r;
name =n;
}
void tampilkan (){[Link](nomorRoll + " " + nama + " " + perguruanTinggi);}
publik statis void utama(String args[]){
[Link]();
Student9 s1 = new Student9(111, "Karan");
Student9 s2 =newStudent9 (222,"Aryan");
Student9 s3 =newStudent9 (333,"Sonoo");
[Link]();
[Link]();
[Link]();
}}
Output:111 Karan BBDIT
222 Aryan BBDIT
333 Sonoo BBDIT
Kontrol Akses
Ada dua jenis modifier di Java: modifier akses dan modifier non-akses.
The access modifiers in java specifies accessibility (scope) of a data member, method, constructor
atau kelas.
pribadi
2. default
3. dilindungi
publik
classB{
publik statis void main(String args[]){
A obj = new A();//Kesalahan Waktu Kompilasi
Dalam contoh di atas, lingkup kelas A dan metode msg() adalah default sehingga tidak dapat dilakukan
diakses dari luar paket.
Modifier akses terlindungi dapat diakses di dalam paket dan di luar paket tetapi melalui
warisan hanya.
Modifikator akses yang dilindungi dapat diterapkan pada anggota data, metode, dan konstruktor. Itu tidak bisa
dapat diterapkan pada kelas.
Dalam contoh ini, kami telah membuat dua paket pack dan mypack. Kelas A dari pack
paket ini bersifat publik, sehingga dapat diakses dari luar paket. Tetapi metode msg dari paket ini
dideklarasikan sebagai dilindungi, sehingga dapat diakses dari luar kelas hanya melalui pewarisan.
4) public accessmodifier
Modifikator akses publik dapat diakses di mana saja. Ini memiliki cakupan terluas di antara semua yang lainnya.
pemodifikasi.
Pribadi Y N N N
Prabawa Y Y N N
Dilindungi Y Y Y N
Umum Y Y Y Y
1. ini dapat digunakan untuk merujuk pada variabel instance kelas saat ini.
[Link] dapat digunakan untuk memanggil metode kelas saat ini (secara implisit)
[Link]() dapat digunakan untuk memanggil konstruktor kelas saat ini.
kelasMahasiswa{
introllno;
String nama;
biaya terapung;
Mahasiswa(introllno,String nama,float biaya) {
[Link]=rollno;
[Link]=name;
[Link]=fee;
}
voiddisplay(){[Link](rollno+" "+name+" "+fee);}
}
classTestThis2{
publik statis void utama(String args[]){
Siswa s1=newStudent(111,"ankit",5000f);
Mahasiswa s2=newStudent(112,"sumit",6000f);
[Link]();
[Link]();
}}
Output:
111 ankit 5000
112 sumit 6000
Konstruktor digunakan untuk menginisialisasi keadaan suatu objek. Metode digunakan untuk mengekspos perilaku
dari sebuah objek.
Constructor must not have return type. Metode harus memiliki tipe kembalian.
Kompiler java menyediakan konstruktor default jika Anda Metode tidak disediakan oleh kompilator di
tidak memiliki konstruktor. kasus apa pun.
Nama konstruktor harus sama dengan nama kelas. Nama metode mungkin ada atau tidak ada
Ada banyak perbedaan antara konstruktor dan metode. Mereka diberikan di bawah ini.
Overloading konstruktor adalah teknik dalam Java di mana sebuah kelas dapat memiliki berbagai jumlah
pengontruksi yang berbeda dalam daftar parameter. Kompiler membedakan pengontruksi ini dengan
mempertimbangkan jumlah parameter dalam daftar dan jenisnya.
[Link]();
[Link]();
}
}
Output:
111 Karan 0
222 Aryan 25
Jika sebuah kelas memiliki beberapa metode yang memiliki nama yang sama tetapi berbeda dalam parameter, itu dikenal sebagai
overloadingMetode
Jika kita hanya perlu melakukan satu operasi, memiliki nama metode yang sama meningkatkan
keterbacaan program.
Dalam contoh ini, kami telah membuat dua metode, metode add() pertama melakukan penjumlahan dari dua
metode angka dan kedua menambahkan melakukan penjumlahan tiga angka.
Dalam contoh ini, kami membuat metode statis sehingga kami tidak perlu membuat instance untuk memanggilnya
metode.
classAdder{
statis int tambah(int a, int b) { return a + b; }
}
classTesOverloading1{
publik statis void main(String[] args) {
[Link]([Link](11,11));
[Link]([Link](11,11,11));
}}
Output:
22
33
Overloading Metode: mengubah tipe data argumen
Dalam contoh ini, kami telah membuat dua metode yang berbeda dalam tipe data. Metode tambah pertama
menerima dua argumen integer dan metode tambah kedua menerima dua argumen double.
kelas ContohRekursi3 {
statik intfaktorial(intn){
jika(n ==1)
kembali1;
lain
kembali(n * faktorial(n-1));
}}
publik statis void main(String[] args) {
[Link]("Faktorial dari 5 adalah: " + faktorial(5));
}}
Output:
Pengumpulan Sampah adalah proses mengembalikan memori yang tidak terpakai selama runtime secara otomatis. Di sisi lain
kata-kata, itu adalah cara untuk menghancurkan objek yang tidak terpakai.
Untuk melakukannya, kami menggunakan fungsi free() dalam bahasa C dan delete() dalam C++. Tetapi, dalam java itu adalah
dilakukan secara otomatis. Jadi, java menyediakan manajemen memori yang lebih baik.
metode gc()
Metode gc() digunakan untuk memanggil pengumpul sampah untuk melakukan pemrosesan pembersihan. Yang
gc() ditemukan dalam kelas System dan Runtime.
[Link][] ch={'j','a','v','a','t','p','o','i','n','t'};
2. String s=newString(ch);
sama dengan:
[Link]="javatpoint";
Kelas String Java menyediakan banyak metode untuk melakukan operasi pada string seperti
compare(), concat(), equals(), split(), length(), replace(), compareTo(), intern(), substring()
dll.
[Link] [Link] kelas
mengimplementasikan antarmuka Serializable, Comparable, dan CharSequence.
Antarmuka CharSequence
Antarmuka CharSequence digunakan untuk merepresentasikan urutan karakter. Ini diimplementasikan oleh
Kelas String, StringBuffer, dan StringBuilder. Ini berarti, kita dapat membuat string di java dengan menggunakan
tiga kelas ini.
String java itu tidak dapat diubah yaitu tidak bisa diubah. Setiap kali kita mengubah apapun
string, a new instance is created. For mutable string, you can use StringBuffer and StringBuilder
kelas.
Ada dua cara untuk membuat objek String:
[Link] stringliteral
[Link] kata kunci baru
String Literal
Literal String Java dibuat dengan menggunakan tanda kutip ganda. Sebagai Contoh:
Each time you create a string literal, the JVM checks the string constant pool first. If the string
sudah ada dalam kolam, referensi ke instance yang dipool akan dikembalikan. Jika string tidak ada dalam
kolam, sebuah instance string baru dibuat dan ditempatkan di kolam. Misalnya:
1.Strings1="Welcome";
String s2="Selamat Datang";//tidak akan membuat instan baru
Dalam kasus seperti itu, JVM akan membuat objek string baru di memori heap normal (bukan kolam) dan
"Selamat datang" akan ditempatkan di kolam konstanta string. Variabel s akan merujuk ke objek
di tumpukan (bukan kolam).
string
contoh
String Tak Berubah di Java
Dalam java, objek string bersifat tidak dapat diubah. Tidak dapat diubah berarti tidak dapat dimodifikasi atau diubah.
Setelah objek string dibuat, data atau statusnya tidak dapat diubah tetapi objek string baru dibuat.
Mari kita coba memahami konsep ketidakberubahan dengan contoh yang diberikan di bawah ini:
kelasUjiStringTakBerubah{
publik statis void main(String args[]){
String s="Sachin";
[Link](" Tendulkar"); //metode concat() menambahkan string di akhir
[Link](s);//akan mencetak Sachin karena string adalah objek yang tidak dapat diubah
}}
Sachin
kelasTestimmutablestring1{
publik statis voidmain(String args[]){
String s="Sachin";
s=[Link](" Tendulkar");
[Link](s);
Sachin Tendulkar
Pewarisan di Java
Pewarisan dalam java adalah mekanisme di mana satu objek memperoleh semua sifat dan perilaku
dari objek induk. Pewarisan mewakili hubungan IS-A, juga dikenal sebagai induk-
hubungan anak
Kata kunci extends menunjukkan bahwa Anda sedang membuat kelas baru yang diturunkan dari yang sudah ada
kelas. Arti dari "extends" adalah untuk meningkatkan fungsionalitas.
kelasKaryawan{
floatsalary=40000;
}
kelasProgrammermelanjutkanKaryawan{
intbonus=10000;
publik statis void main(String args[]) {
Programmer p=newProgrammer();
[Link]("Gaji programmer adalah:"+[Link]);
[Link]("Bonus Programmer adalah:" + [Link]);
}}
kelasHewan{
voideat(){[Link]("makan...");}
}
kelasAnjingmemperpanjangHewan{
voidbark(){[Link]("menggonggong...");}
}
kelasTesPewarisan{
publik statis void main(String args[]){
Anjing d=newAnjing();
[Link]();
[Link]();
}}
Output:
gonggongan...
makan...
kelasHewan{
voideat(){[Link]("makan...");}
}
kelasAnjingMemperluasHewan{
voidbark(){[Link]("menggonggong...");}
}
kelasAnakAnjingmengambilAnjing{
voidweep(){[Link]("menangis...");}
}
classTestInheritance2{
Output:
menangis...
menggonggong...
makan...
kelasHewan{
voideat(){[Link]("makan...");}
}
kelasAnjingMemperpanjangHewan{
voidbark(){[Link]("menggonggong...");}
}
classCatextendsAnimal{
voidmeow(){[Link]("mendengung...");}
}
classTestInheritance3{
publik statis void main(String args[]){
Kucing c=newKucing();
[Link]();
[Link]();
//[Link]();//[Link]
}}
Output:
mengaung...
makan...
Sebuah subclass mencakup semua anggota dari superclass-nya tetapi tidak dapat mengakses anggota-anggota tersebut.
kelas super yang telah dideklarasikan sebagai privat. Upaya untuk mengakses variabel privat akan
menyebabkan kesalahan kompilasi karena menyebabkan pelanggaran akses. Variabel yang dideklarasikan sebagai pribadi, hanya
dapat diakses oleh anggota lain dari kelasnya sendiri. Subkelas tidak memiliki akses ke itu.
Kata kunci super dalam Java adalah variabel referensi yang digunakan untuk merujuk ke kelas induk langsung.
objek.
Setiap kali Anda membuat instansi dari subclass, instansi dari kelas induk dibuat secara implisit.
yang dirujuk oleh variabel referensi super.
super dapat digunakan untuk merujuk pada variabel instan kelas induk langsung.
2. super dapat digunakan untuk memanggil metode kelas langsung dari kelas induk.
super digunakan untuk merujuk pada variabel instan kelas induk yang langsung.
kelasHewan{
Stringcolor="white";
}
kelas Anjing memperluas Hewan{
Stringcolor="black";
voidprintColor(){ [Link](color);//prints
warna Dogclass
[Link]([Link]);//mencetak warna dari kelas Animal
}
}
classTestSuper1{
publik statis void utama(String args[]){
Anjing d=newAnjing();
[Link]();
}}
Output:
hitam
putih
Kata Kunci Final di Java
Kata kunci final dalam java digunakan untuk membatasi pengguna. Kata kunci final java dapat digunakan dalam banyak konteks.
Akhir dapat berupa:
variabel
2. metode
3. kelas
Kata kunci final dapat diterapkan pada variabel, variabel final yang tidak memiliki nilai disebut kosong
variabel final atau variabel final yang belum diinisialisasi. Ini hanya bisa diinisialisasi di dalam konstruktor. Final kosong
Variabel juga bisa bersifat statis yang akan diinisialisasi hanya dalam blok statis.
Kelas Object adalah kelas induk dari semua kelas di Java secara default. Dengan kata lain, itu adalah
kelas tertinggi dari java.
Kelas Object bermanfaat jika Anda ingin merujuk pada objek apa pun yang tipenya tidak Anda ketahui. Perhatikan
variabel referensi kelas induk dapat merujuk objek kelas anak, yang dikenal sebagai upcasting.
Mari kita ambil contoh, ada metode getObject() yang mengembalikan sebuah objek tetapi dapat berupa jenis apa pun.
seperti Karyawan, Siswa, dll, kita dapat menggunakan referensi kelas Objek untuk merujuk objek tersebut. Contohnya:
1. Objek obj = getObject(); // kita tidak tahu objek apa yang akan dikembalikan dari metode ini
Kelas Objek menyediakan beberapa perilaku umum untuk semua objek seperti objek dapat menjadi
dibandingkan, objek dapat dikloning, objek dapat diberi tahu, dll.
[Link]{
intgetRateOfInterest(){return0;}
}
kelas SBI memperluas Bank {
intgetRateOfInterest(){return8;}
}
classICICIextendsBank{
intgetRateOfInterest(){return7;}
}
kelas AXIS memperpanjang Bank {
intgetRateOfInterest(){kembali9;}
}
kelasUji2{
publik statis void utama(String args[]) {
SBI s=newSBI();
ICICI i=newICICI();
AXIS a=newAXIS();
[Link]("Suku Bunga SBI: " + [Link]());
[Link]("Tingkat Bunga ICICI: " + [Link]());
[Link]("Tingkat Bunga AXIS: " + [Link]());
}}
Output:
SBI Rate of Interest: 8
Sebuah kelas yang dinyatakan dengan kata kunci abstract dikenal sebagai kelas abstrak di java. Itu dapat memiliki
metode abstrak dan non-abstrak (metode dengan isi). Ini perlu diperluas dan metodenya
diimplementasikan. Itu tidak dapat diinstansiasi.
metode_abstrak
[Link] voidprintStatus();//no body and abstract
Antarmuka di java adalah mekanisme untuk mencapai abstraksi. Hanya bisa ada metode abstrak.
di antarmuka java bukan tubuh metode. Ini digunakan untuk mencapai abstraksi dan pewarisan ganda dalam
Java.
Ada tiga alasan utama untuk menggunakan antarmuka. Mereka dijelaskan di bawah ini.
o Ini digunakan untuk mencapai abstraksi.
o Dengan antarmuka, kita dapat mendukung fungsionalitas pewarisan ganda.
o Ini dapat digunakan untuk mencapai loose coupling.
antarmukaPrintable{
voidprint();
}
interfaceShowable{
voidshow();
}
kelasA7mengimplementasikanPrintable,Showable{
publik void print(){[Link]("Halo");}
publik void tampilkan(){[Link]("Selamat datang");}
public static voidmain(String args[]){
A7 obj = new A7();
[Link]();
[Link]();
}}
Halo
Selamat datang
Kelas abstrak Antarmuka
1) Kelas abstrak dapat memiliki abstrak Antarmuka hanya dapat memiliki metode abstrak. Karena
dan metode non-abstrak. Java 8, dapat memiliki default dan static
metode juga.
Kelas abstrak tidak mendukung Antarmuka mendukung pewarisan ganda.
multipleinheritance.
3) Kelas abstrak dapat memiliki final, non- Antarmuka hanya memiliki variabel statis dan final.
variabel final, statis, dan non-statis.
Kelas abstrak dapat menyediakan Antarmuka tidak dapat memberikan implementasi dari
implementasi antarmuka. kelas abstrak.
5) Kata kunci abstract digunakan untuk Kata kunci interface digunakan untuk mendeklarasikan
deklarasikan kelas abstrak. antarmuka.
6)Contoh: Contoh:
publik abstrak kelas Bentuk{ public antarmuka Dapat Digambar{
publik abstrak kosong gambar(); kosong gambar();
} }
Kami menggunakan kelas dalam untuk mengelompokkan kelas dan antarmuka secara logis di satu tempat agar dapat lebih
dapat dibaca dan mudah dirawat.
Pada dasarnya ada tiga keuntungan dari kelas dalam di java. Mereka adalah sebagai berikut:
1) Kelas bersarang mewakili jenis hubungan khusus yang dapat mengakses semua anggota
(anggota data dan metode) dari kelas luar termasuk yang pribadi.
Kelas bersarang digunakan untuk mengembangkan kode yang lebih mudah dibaca dan dipelihara karena itu
kelompokkan kelas dan antarmuka secara logis di satu tempat saja.
Kelas dalam adalah bagian dari kelas bersarang. Kelas bersarang non-statis dikenal sebagai kelas dalam.
Ada dua jenis kelas bersarang, yaitu kelas bersarang non-statis dan kelas bersarang statis. Kelas bersarang non-statis
classes are also known as inner classes.
Paket Java
Paket Java adalah sekumpulan kelas, antarmuka, dan sub-paket yang memiliki tipe serupa.
Paket dalam java dapat dikategorikan dalam dua bentuk, paket bawaan dan paket yang ditentukan oleh pengguna.
Ada banyak paket bawaan seperti java, lang, awt, javax, swing, net, io, util, sql
1) Paket Java digunakan untuk mengkategorikan kelas dan antarmuka sehingga mudah untuk
dipelihara.
kemaslahpackmu;
publik kelas Sederhana{
publik statis void utama(String args[]){
[Link]("Selamat datang di paket");
}}
Jika Anda tidak menggunakan IDE, Anda perlu mengikuti sintaks yang diberikan di bawah ini:
UNIT-3
Penanganan Pengecualian
Penanganan pengecualian di Java adalah salah satu mekanisme yang kuat untuk menangani waktu jalannya
kesalahan sehingga alur normal aplikasi dapat dipertahankan.
What is exception
Dalam Java, pengecualian adalah suatu peristiwa yang mengganggu alur normal program. Ini adalah suatu objek yang
dilempar saat runtime.
Keuntungan utama dari penanganan pengecualian adalah untuk mempertahankan alur normal aplikasi.
Pengecualian biasanya mengganggu alur normal aplikasi, itulah sebabnya kita menggunakan pengecualian.
pengelolaan.
Jenis-jenis Pengecualian
Ada dua jenis pengecualian utama: yang diperiksa dan yang tidak diperiksa di mana kesalahan dianggap sebagai
eksepsi yang tidak terdeteksi. Sun Microsystems mengatakan ada tiga jenis eksepsi:
CheckedException
2. UncheckedException
3. Error
1)Checked Exception:Kelas-kelas yang memperluas kelas Throwable kecuali RuntimeException dan Error
dikenal sebagai exception yang diperiksa misalnya IOException, SQLException, dll. Exception yang diperiksa diperiksa
pada waktu kompilasi.
2) Pengecualian yang Tidak Diperiksa:Kelas-kelas yang mewarisi RuntimeException dikenal sebagai unchecked
eksepsi misalnya ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException dll.
Pengecualian yang tidak terdeteksi tidak diperiksa saat waktu kompilasi, melainkan diperiksa saat waktu berjalan.
Blok try di Java digunakan untuk membungkus kode yang mungkin melempar pengecualian. Ini harus digunakan dalam
metode tersebut.
Blok try Java harus diikuti oleh blok catch atau blok finally.
[Link]{
2.//code that may throwexception
3. }catch(Nama_Kelas_Exceptions
[Link]{
2.//kode yang mungkin melempar pengecualian
3. }akhirnya{}
Blok catch Java digunakan untuk menangani Exception. Itu harus digunakan setelah blok try saja.
Mari kita coba untuk memahami masalahnya jika kita tidak menggunakan blok try-catch.
public classTesttrycatch1{
publik statis kosong main(String args[]){
intdata=50/0;//mungkin melempar pengecualian
[Link]("sisa kode...");
}}
Output:
Pengecualian dalam utas utama [Link]:/ oleh nol
Seperti yang ditunjukkan dalam contoh di atas, sisa kode tidak dieksekusi (dalam kasus tersebut, sisa dari
kode... pernyataan tidak dicetak).
There can be 100 lines of code after exception. So all the code after exception will not be
dieksekusi.
Mari kita lihat solusi dari masalah di atas dengan blok try-catch java.
Sekarang, seperti yang ditampilkan dalam contoh di atas, sisa kode dieksekusi yaitu sisa kode...
pernyataan dicetak.
Jika Anda harus melakukan tugas yang berbeda pada saat terjadinya berbagai Exception, gunakan java multi
blok catch.
Tugas1 selesai
sisa dari kode...
Mari kita lihat contoh sederhana dari blok try bersarang dalam java.
classExcep6{
publik statis void utama(String args[]) {
coba{t
ry{
[Link]("akan membagi");
intb =39/0;
}catch(ArithmeticException e){[Link](e);}
coba{
inta[]=new int[5];
a[5]=4;
}catch(ArrayIndexOutOfBoundsException e){[Link](e);}
[Link]("pernyataan lain);
}catch(Exception e){[Link]("ditangani");}
[Link]("aliran normal..");
}
1. }
Blok finally Java
Blok finally di Java adalah blok yang digunakan untuk menjalankan kode penting seperti menutup koneksi,
aliran dll.
Blok finally di Java selalu dieksekusi apakah pengecualian ditangani atau tidak.
Case 1
Mari kita lihat contoh java finally di mana pengecualian tidak terjadi.
classTestFinallyBlock{
publik statis voidmain(String args[]){
cobalah{
intdata=25/5;
[Link](data);
}
catch(NullPointerException e){[Link](e);}
akhirnya{[Link]("blok akhirnya selalu dieksekusi");}
[Link]("sisa kode...");
}
}
5
blok finally selalu dieksekusi
sisa kode...
Kata kunci throw di Java digunakan untuk secara eksplisit melemparkan sebuah pengecualian.
Kita dapat melempar baik pengecualian yang terverifikasi maupun yang tidak terverifikasi di java dengan kata kunci throw. Kata throw
kata kunci terutama digunakan untuk melempar pengecualian kustom. Kami akan melihat pengecualian kustom nanti.
[Link] pengecualian;
Dalam contoh ini, kami telah membuat metode validasi yang mengambil nilai integer sebagai parameter. Jika
usia kurang dari 18, kami melempar ArithmeticException jika tidak cetak pesan
selamat datang untuk memilih.
Output:
Kata kunci throws di Java digunakan untuk mendeklarasikan sebuah pengecualian. Ini memberikan informasi kepada
programmer bahwa mungkin terjadi pengecualian jadi lebih baik bagi programmer untuk memberikan
kode penanganan pengecualian sehingga alur normal dapat dipertahankan.
Penanganan pengecualian terutama digunakan untuk menangani pengecualian yang diperiksa. Jika terjadi apa pun
eksepsi yang tidak diperiksa seperti NullPointerException, itu adalah kesalahan programmer karena dia tidak
melakukan pemeriksaan sebelum kode digunakan.
Mari kita lihat contoh klausul throws pada java yang menggambarkan bahwa pengecualian yang diperiksa dapat
disebarkan oleh kata kunci throws.
import [Link];
classTestthrows1{
voidm()melemparIOException{
lempar IOException baru("kesalahan perangkat"); // pengecualian yang diperiksa
}
voidn()throwsIOException{
m();
}
voidp(){
cobalah{
n();
}catch(Exception e){[Link]("pengecualian ditangani");}
}
publik statis void main(String args[]){
Testthrows1 obj=newTestthrows1();
obj.p();
[Link]("aliran normal..."); } }
Output:
pengecualian ditangani
aliran normal...
Jika Anda sedang membuat Exception Anda sendiri yang dikenal sebagai exception kustom atau yang ditentukan pengguna
exception. Java custom exceptions are used to customize the exception according to user need.
Dengan bantuan pengecualian kustom, Anda dapat memiliki pengecualian dan pesan Anda sendiri.
[Link]("sisa kode...");
}}
Multithreading
Thread pada dasarnya adalah sub-proses ringan, unit terkecil dari pemrosesan. Pemrosesan paralel dan
multithreading, keduanya digunakan untuk mencapai multitasking.
Tapi kami menggunakan multithreading daripada multiprocessing karena thread berbagi area memori yang sama.
Mereka tidak mengalokasikan area memori terpisah sehingga menghemat memori, dan pengalihan konteks antara
benang membutuhkan waktu lebih sedikit dibandingkan proses.
Ini tidak memblokir pengguna karena thread bersifat independen dan Anda dapat melakukan beberapa
operasi pada saat yang bersamaan.
3) Utas bersifat mandiri sehingga tidak mempengaruhi utas lain jika terjadi pengecualian di satu utas.
Sebuah utas dapat berada dalam salah satu dari lima keadaan. Menurut Sun, hanya ada 4 keadaan dalam kehidupan utas.
siklus dalam javanew, runnable, non-runnable dan terminated. Tidak ada status running.
Tetapi untuk pemahaman yang lebih baik tentang utas, kami menjelaskannya dalam 5 keadaan.
Siklus hidup thread di Java dikendalikan oleh JVM. Status thread Java adalah sebagai berikut:
Baru
[Link] dijalankan
[Link]
[Link] Dapat Dijalankan(Terblokir)
[Link]
Kelas Thread:
Kelas Thread menyediakan konstruktor dan metode untuk membuat dan melakukan operasi pada sebuah
Kelas [Link] memperluas kelas Object dan mengimplementasikan antarmuka Runnable.
oThread()
oThread(String nama)
oThread(Runnable r)
oThread(Runnable r,String name)
Antarmuka Runnable:
Antarmuka Runnable harus diimplementasikan oleh kelas mana pun yang instansinya dimaksudkan untuk menjadi
dieksekusi oleh sebuah utas. Antarmuka Runnable hanya memiliki satu metode bernama run().
[Link] void run(): digunakan untuk melakukan aksi untuk sebuah thread.
Metode start() dari kelas Thread digunakan untuk memulai sebuah thread yang baru dibuat. Ini melakukan hal-hal berikut
tasks:
oSebuah utas baru dimulai (dengan tumpukan panggilan baru).
oUtas bergerak dari keadaan Baru ke keadaan Dapat Dijalankan.
oKetika utas mendapatkan kesempatan untuk dieksekusi, metode run() yang ditargetkan akan dijalankan.
classMulti3implementsRunnable{
publik void jalankan(){
[Link]("thread is running...");
}
publik statis voidmain(String args[]){
Multi3 m1=newMulti3();
Thread t1 = new Thread(m1);
[Link]();
}}
Output: benang sedang berjalan...
Prioritas default sebuah utas adalah 5 (NORM_PRIORITY). Nilai MIN_PRIORITY adalah 1 dan
nilai MAX_PRIORITY adalah 10.
TestMultiPriority1 m1=newTestMultiPriority1();
TestMultiPriority1 m2=newTestMultiPriority1();
[Link](Thread.MIN_PRIORITY);
[Link](Thread.MAX_PRIORITY);
[Link]();
[Link]();
}}
Nama thread yang sedang berjalan adalah: Thread-0
prioritas utas yang sedang berjalan adalah: 10
nama utas yang berjalan adalah: Thread-1
prioritas thread yang berjalan adalah:1
Metode yang disinkronkan digunakan untuk mengunci objek untuk setiap sumber daya yang dibagikan.
Ketika sebuah thread memanggil metode yang disinkronkan, itu secara otomatis memperoleh kunci untuk objek tersebut.
dan melepaskannya ketika utas menyelesaikan tugasnya.
kelasPelanggan{
intamount=10000;
synchronized void withdraw(int amount) {
[Link]("akan menarik...");
jika([Link]<amount){
Saldo kurang; menunggu setoran...
coba{tunggu();}catch(Exception e){}
}
[Link]-=jumlah;
[Link]("penarikan selesai...");
}
synchronized void deposit(int amount) {
[Link]("akan melakukan setoran...");
[Link]+=jumlah;
[Link]("setoran selesai... ");
beritahu();
}
}
classTest{
publik statis void main(String args[]){
finalCustomer c=newCustomer();
newThread(){
publik voidrun(){[Link](15000);}
}.start();
newThread(){
ThreadGroup(String nama)
ThreadGroup(ThreadGroup induk, String nama)
Sekarang semua 3 utas tergabung dalam satu grup. Di sini, tg1 adalah nama grup utas, MyRunnable adalah
kelas yang mengimplementasikan antarmuka Runnable dan "satu", "dua" dan "tiga" adalah nama-nama thread.
Sekarang kita dapat menghentikan semua utas dengan hanya satu baris kode.
1. [Link]().getThreadGroup().interrupt();
UNIT 4
APLETS:
Applet adalah program yang datang dari server ke klien dan dijalankan di sisi klien dan
menampilkan hasil.
Applet merupakan kode byte yang ter halaman html. (Applet = kode byte + html) dan dijalankan
dengan bantuan browser yang mendukung Java seperti Internet Explorer.
Applet adalah program Java yang berjalan di dalam browser. Berbeda dengan aplikasi Java, applet tidak memiliki
metode utama ()
Untuk membuat applet, kita dapat menggunakan kelas [Link] atau [Link]. Semua applet mewarisi
kelas super "Applet". Kelas Applet berisi beberapa metode yang membantu mengontrol
pelaksanaan sebuah applet.
Keuntungan:
Applet memberikan sifat dinamis untuk sebuah halaman web.
Applet digunakan dalam pengembangan permainan dan animasi.
Menulis dan menampilkan grafik serta animasi (peramban) lebih mudah daripada
aplikasi.
Dalam pengembangan GUI, konstruktor, ukuran bingkai, kode penutupan jendela, dll. tidak
diperlukan
Contoh
kelas publik MyClass impor [Link].*;
{ impor [Link].*;
publik statis void utama String
args[]) {} publik
} kelas Myclass melanjutkan Applet
{
public void init()
{
}
publik void mulai()
{
}
publik void berhenti()
{
}
publik void hancurkan() {}
Inisialisasi:
public void init(): Metode ini digunakan untuk menginisialisasi variabel, parameter untuk membuat
komponen. Metode ini dijalankan hanya sekali pada saat applet dimuat ke dalam memori.
publik void init()
{
//inisialisasi
}
Berlari
public void start (): Setelah metode init() dieksekusi, metode start dieksekusi
secara otomatis. Metode start dijalankan selama applet mendapatkan fokus. Di metode ini, kodenya
terkait dengan membuka file, menghubungkan ke database, mengambil data, dan memproses
data telah ditulis.
Idle / Runnable:
publik void stop (): Metode ini dijalankan ketika applet kehilangan fokus. Kode yang terkait dengan
menutup file dan database, menghentikan thread dan melakukan operasi pembersihan adalah
ditulis dalam metode berhenti ini.
Tewas/Hancur:
public void hancurkan (): Metode ini dijalankan hanya sekali ketika applet dihentikan
dari ingatan.
Melaksanakan metode di atas dalam urutan tersebut disebut siklus hidup applet.
Kita juga bisa menggunakan public void paint (Graphics g) dalam applet.
//Kerangka Applet.
impor [Link].*;
impor [Link].*;
/*
<applet code="AppletSkel" width=300 height=100>
</applet>
*/
public class AppletSkel extends Applet {
3 Dipanggil pertama.
publik void
init() {
4 inisialisasi
}
/* Dipanggil kedua, setelah init(). Juga dipanggil setiap kali applet di-restart. */
publik void mulai() {
3 mulai atau melanjutkan eksekusi
}
4 Dipanggil ketika applet adalah
stopped. public void stop() {
5 menangguhkan pelaksanaan
}
/* Dipanggil ketika applet dihentikan. Ini adalah metode terakhir yang dijalankan. */
publik void hancurkan() {
5 lakukan aktivitas pemshutdownan
}
6 Dipanggil ketika jendela applet harus
dipulihkan. publik void catat(Graphics g) {
7 tampilkan kembali konten jendela
}
}
Setelah menulis sebuah applet, sebuah applet dikompilasi dengan cara yang sama seperti aplikasi Java tetapi menjalankannya
applet berbeda.
Ada dua cara untuk menjalankan sebuah applet.
Menjalankan applet di dalam browser web yang kompatibel dengan Java.
Menjalankan applet menggunakan „appletviewer‟. Ini menjalankan applet dalam sebuah jendela.
Untuk mengeksekusi sebuah applet menggunakan browser web, kita harus menulis file HTML kecil yang berisi
tag „APPLET‟ yang sesuai. Tag <APPLET> berguna untuk menyematkan sebuah applet ke dalam halaman HTML. Itu
memiliki bentuk berikut:
<APPLET CODE="nama file kelas applet" HEIGHT = tinggi maksimum dari applet di
pixels WIDTH = maximum width of applet in pixels ALIGN = alignment (LEFT, RIGHT,
TENGAH, ATAS, BAWAH
<PARAM NAME = nama parameter VALUE = nilainya
value> </APPLET>
Eksekusi: appletviewer [Link] atau appletviewer [Link]
Tag <PARAM> berguna untuk mendefinisikan variabel (parameter) dan nilainya di dalam halaman HTML
yang dapat diteruskan ke applet. Applet dapat mengakses nilai parameter menggunakan
metode getParameter (), sebagai: String value = getParameter("pname");
Contoh Program:
Berikut adalah sebuah applet sederhana bernama [Link]
impor [Link].*;
impor [Link].*;
publik kelas HelloWorldApplet memperluas Applet {
publik void menggambar (Grafis g) {
[Link] ("Halo Dunia", 25, 50);
}}
JENIS-JENIS APLIKASI
Applet terdiri dari dua jenis:
// Aplikasi Lokal
// Applet Jarak Jauh
Applet Lokal: Applet yang dikembangkan secara lokal dan disimpan dalam sistem lokal disebut applet lokal.
Jadi, sistem lokal tidak memerlukan internet. Kita dapat menulis applet kita sendiri dan menyematkannya ke dalam
halaman web.
Applet Jarak Jauh: Applet yang diunduh dari sistem komputer jarak jauh dan disematkan
applet ke dalam halaman web. Internet harus ada di sistem untuk mengunduh applet dan
jalankan itu. Untuk mengunduh applet kita harus mengetahui alamat applet di web yang dikenal sebagai Uniform
Penampil sumber (URL) dan harus ditentukan dalam dokumen HTML applet sebagai nilai dari
KODEBASIS.
Ex1: Tulis program untuk mengirimkan nama karyawan dan nomor ID ke sebuah applet.
impor [Link].*;
impor [Link].*;
/* <applet code="[Link]" lebar = 600 tinggi= 450>
<param name = "t1" value="Hari Prasad"> <param name =
"t2" value ="101">
</applet> */
b=[Link](str);
result=a+b;
str=[Link](result);
}
public void paint(Graphics g)
{
[Link](" Hasil Penjumlahan adalah : " + str, 0, 15);
}
}
Ex3: [Link]
impor [Link].*;
impor [Link].*;
/*<Applet kode="hai" tinggi="250" lebar="250">
<PARAM name="Message" value="Hai friend how are you ..?"></APPLET>
*/
kelas hai diperluas Applet
{
private String defaultMessage = "Hello!";
publik void paint(Graphics g) {
PENANGANAN ACARA
Penanganan acara adalah inti dari pemrograman applet yang sukses. Sebagian besar acara yang diterima oleh applet
akan merespons dihasilkan oleh pengguna. Peristiwa yang paling umum ditangani adalah yang dihasilkan
oleh mouse, keyboard, dan berbagai kontrol, seperti tombol tekan.
Acara didukung oleh paket [Link].
Keuntungan dari desain ini adalah bahwa logika aplikasi yang memproses peristiwa adalah
dipisahkan dengan rapi dari logika antarmuka pengguna yang menghasilkan peristiwa tersebut. Antarmuka pengguna
elemen dapat "mendelegasikan" pemrosesan sebuah peristiwa kepada sepotong kode yang terpisah.
Dalam model peristiwa delegasi, pendengar harus mendaftar dengan sumber agar dapat
menerima pemberitahuan acara. Ini memberikan manfaat penting: pemberitahuan hanya dikirim jika
kepada pendengar yang ingin menerimanya.
EVENTS
Dalam model delegasi, sebuah peristiwa adalah objek yang menggambarkan perubahan keadaan pada sebuah sumber. Ini bisa jadi
dihasilkan sebagai konsekuensi dari seseorang berinteraksi dengan elemen dalam antarmuka grafis
antarmuka. Beberapa aktivitas yang menyebabkan peristiwa dihasilkan adalah menekan tombol, memasukkan
sebuah karakter melalui keyboard, memilih item dalam daftar, dan mengklik mouse.
Peristiwa juga dapat terjadi yang tidak secara langsung disebabkan oleh interaksi dengan antarmuka pengguna.
Misalnya, suatu peristiwa dapat dihasilkan ketika pengatur waktu habis, penghitung melebihi suatu nilai,
kegagalan perangkat lunak atau perangkat keras terjadi, atau suatu operasi selesai.
SUMBER ACARA
Sebuah sumber adalah objek yang menghasilkan sebuah peristiwa. Ini terjadi ketika keadaan internal objek tersebut
perubahan dengan cara tertentu. Sumber dapat menghasilkan lebih dari satu jenis peristiwa. Sumber harus mendaftar
pendengar dalam urutan agar pendengar menerima pemberitahuan tentang jenis acara tertentu. Setiap
jenis acara memiliki metode pendaftaran sendiri.
Berikut adalah bentuk umum:
public void tambahkan Pendengar Tipe( Pendengar Tipe el )
PENDENGAR ACARA
Pendengar adalah objek yang diberi tahu ketika sebuah peristiwa terjadi. Ia memiliki dua persyaratan utama. Pertama,
itu pasti telah terdaftar dengan satu atau lebih sumber untuk menerima pemberitahuan tentang khusus
jenis-jenis acara. Kedua, harus mengimplementasikan metode untuk menerima dan memproses pemberitahuan ini.
Metode yang menerima dan memproses peristiwa didefinisikan dalam satu set antarmuka yang ditemukan di
[Link].
EVENT CLASSES
Kelas-kelas yang mewakili peristiwa berada di inti mekanisme penanganan peristiwa Java. Di akar
dari hierarki kelas acara Java adalah EventObject, yang terdapat di [Link]. Ini adalah superclass untuk semua
acara.
Satu konstruktor ditampilkan di sini:
EventObject(Object src )
EventObject memiliki dua metode: getSource() dan toString() .
Metode getSource( ) mengembalikan sumber dari peristiwa. Contoh: Objek getSource( )
toString( )mengembalikan nilai string yang setara dengan peristiwa tersebut.
Paket [Link] mendefinisikan beberapa jenis peristiwa yang dihasilkan oleh berbagai pengguna
elemen antarmuka.
Kelas Acara Deskripsi
AcaraAksi Generated when a button is pressed, a list item is double-clicked, or a menu
item terpilih.
AdjustmentEvent Dihasilkan saat bilah gulir dimanipulasi.
AcaraKomponen Generated when a component is hidden, moved, resized or becomes visible.
ContainerEvent Generated when a component is added to or removed from a container.
Peristiwa Fokus Generated when a component gains or loses keyboard focus.
InputEvent Kelas super abstrak untuk semua kelas peristiwa input komponen.
ItemEvent Dihasilkan ketika kotak centang atau item daftar diklik; jadi terjadi ketika ada pilihan
pemilihan dilakukan atau item menu yang dapat dicentang dipilih atau dibatalkan.
KeyEvent Dihasilkan ketika input diterima dari keyboard.
PeristiwaMouse Dihasilkan saat mouse diseret, dipindahkan, diklik, ditekan, atau dilepaskan;
also generated when the mouse enters or exits a component.
MouseWheelEvent dihasilkan ketika roda mouse digerakkan. (Ditambahkan oleh Java 2, versi 1.4)
AcaraTeks Dihasilkan ketika nilai area teks atau kolom teks diubah.
PeristiwaJendela Dihasilkan saat jendela diaktifkan, ditutup, dinonaktifkan, dideikonifikasi,
iconified, opened, or quit.
Kelas ActionEvent
Sebuah ActionEvent dihasilkan ketika sebuah tombol ditekan, sebuah item daftar diklik dua kali, atau sebuah menu
item dipilih. Kelas ActionEvent mendefinisikan empat konstanta integer yang dapat digunakan untuk
identify any modifiers associated with an action event: ALT_MASK , CTRL_MASK ,
META_MASK, dan SHIFT_MASK.
ActionEvent memiliki tiga konstruktor ini:
ActionEvent(Object src , int type , String cmd )
ActionEvent(Object src, int type, String cmd, int modifiers)
ActionEvent(Object src, int type, String cmd, long when, int modifiers)
PendengarWadah Tentukan dua metode untuk mengenali ketika sebuah komponen ditambahkan atau
dikeluarkan dari wadah.
FocusListener Definisikan dua metode untuk mengenali kapan sebuah komponen mengalami kenaikan atau penurunan
fokus keyboard.
PendengarItem Mendefinisikan satu metode untuk mengenali ketika keadaan suatu item berubah.
PendengarKunci Tentukan tiga metode untuk mengenali ketika sebuah kunci ditekan, dilepaskan,
atau ketik.
MouseListener Definesfive methodsto recognize when the mouse is clicked, enters a
komponen, keluar dari komponen, ditekan, atau dilepaskan.
Pendengar Gerakan Mouse
Tentukan dua metode untuk mengenali kapan mouse diseret atau
pindah.
Pendengar roda mouse Mendefinisikan satu metode untuk mengenali ketika roda mouse digerakkan.
PendengarTeks Menentukan satu metode untuk mengenali ketika nilai teks berubah.
PendengarJendela Mendefinisikan tujuh metode untuk mengenali ketika sebuah jendela diaktifkan,
ditutup, dinonaktifkan, dideikonifikasi, diikonifikasi, dibuka, atau keluar.
Model acara delegasi memiliki dua bagian: sumber dan pendengar. Pendengar dibuat oleh
mengimplementasikan satu atau beberapa antarmuka yang ditentukan oleh paket [Link].
Antarmuka ActionListener
Antarmuka ini mendefinisikan metode actionPerformed( ) yang dipanggil saat terjadi peristiwa aksi
terjadi.
Bentuk umumnya ditunjukkan di sini: void actionPerformed(ActionEvent ae)
Antarmuka ItemListener
Antarmuka ini mendefinisikan metode itemStateChanged( ) yang dipanggil ketika status suatu item
perubahan.
Bentuk umumnya ditunjukkan di sini: void itemStateChanged(ItemEvent ie)
Antarmuka KeyListener
Antarmuka ini mendefinisikan tiga metode. Metode keyPressed( ) dan keyReleased( ) dipanggil
ketika sebuah tombol ditekan dan dilepaskan, masing-masing. Metode keyTyped( ) dipanggil
ketika sebuah karakter telah dimasukkan. Misalnya, jika pengguna menekan dan melepaskankey, three
peristiwa dihasilkan dalam sebuah urutan: tombol ditekan, diketik, dan dilepaskan.
Antarmuka MouseMotionListener
Antarmuka ini mendefinisikan dua metode. Metode mouseDragged() dipanggil beberapa kali saat ...
mouse is dragged. The mouseMoved( ) method is called multiple times as the mouse is moved.
mouseY = [Link]();
msg = "*";
tampilkanStatus("Menyeret mouse di " + mouseX + ", " + mouseY);
cat ulang();
}
// Mengatasi pergerakan mouse.
publik void mouseMoved(MouseEvent me) {
// tampilkan status
tampilkanStatus("Memindahkan mouse di " + [Link]() + ", " + [Link]());
}
// Tampilkan pesan di jendela applet pada lokasi X,Y saat ini.
publik void paint(Grafik g) {
[Link](msg, mouseX, mouseY);
}
}
Menangani Peristiwa Keyboard
Ketika sebuah tombol ditekan, sebuah peristiwa KEY_PRESSED dihasilkan. Ini menyebabkan panggilan ke
penangan acara keyPressed( ). Ketika tombol dilepaskan, sebuah acara KEY_RELEASED dihasilkan
dan handler keyReleased() dijalankan. Jika karakter dihasilkan oleh penekanan tombol, maka sebuah
KEY_TYPEDevent dikirim dan pengolah keyTyped() dipanggil.
Dengan demikian, setiap kali pengguna menekan sebuah tombol, setidaknya dua dan sering tiga peristiwa dihasilkan.
Anda peduli tentang karakter sebenarnya, maka Anda bisa mengabaikan informasi yang dikirimkan oleh penekanan tombol
dan acara peluncuran.
EX:// Menunjukkan penangan acara kunci.
impor [Link].*;
impor [Link].*;
impor [Link].*;
/* <applet code="SimpleKey" width=300
tinggi=100> </applet> */
kelas publik SimpleKey memperluas Applet mengimplementasikan KeyListener
{
String msg = "";
int X = 10, Y = 20; // output koordinat
publik void init() {
tambahkanKeyListener(ini);
requestFocus(); // meminta fokus input
}
publik void keyPressed(KeyEvent ke)
{ showStatus("Key Down"); }
}
Kelas Adaptor
Java menawarkan fitur khusus, yang disebut kelas adapter, yang dapat menyederhanakan pembuatan acara.
kelas adaptor memberikan implementasi kosong dari semua metode
dalam antarmuka pendengar acara.
Kelas adaptor berguna ketika Anda ingin menerima dan memproses hanya beberapa peristiwa yang
ditangani oleh antarmuka pendengar acara tertentu.
Misalnya, kelas MouseMotionAdapter memiliki dua metode, mouseDragged() dan
mouseMoved( ). Tanda tangan dari metode kosong ini persis seperti yang didefinisikan dalam
Antarmuka MouseMotionListener. Jika Anda hanya tertarik pada peristiwa seret mouse, maka Anda
dapat dengan mudah memperpanjang MouseMotionAdapter dan mengimplementasikan mouseDragged( ). Yang kosong
implementasi mouseMoved( ) akan menangani peristiwa gerakan mouse untuk Anda.
Kelas Adaptor Antarmuka Pendengar
KomponenAdapter PendengarKomponen
PengadaptasiKontainer PendengarKontainer
FocusAdapter Listener Fokus
KeyAdapter Pendeteksi Kunci
MouseAdapter MouseListener
MouseMotionAdapter PendengarGerakanMouse
WindowAdapter WindowListener
Contohkan sebuah adaptor.
import [Link].*;
impor [Link].*;
import [Link].*;
/*
<applet code="AdapterDemo" width=300 height=100>
</applet>
*/
kelas publik AdapterDemo memperluas Applet
{
public void init() {
tambahkanMouseListener(new MyMouseAdapter(this));
addMouseMotionListener(new
MyMouseMotionAdapter(this)); }
}
Aliran
Sebuah stream dapat didefinisikan sebagai rangkaian data. Ada dua jenis Stream−
InPutStream−InputStream digunakan untuk membaca data dari sumber.
OutputStream−OutputStream digunakan untuk menulis data ke suatu tujuan.
Java menyediakan dukungan yang kuat tetapi fleksibel untuk I/O yang terkait dengan file dan jaringan.
Aliran Byte
Aliran byte Java digunakan untuk melakukan input dan output byte 8-bit. Meskipun ada banyak
kelas-kelas yang terkait dengan aliran byte tetapi kelas yang paling sering digunakan adalah, FileInputStream dan
FileOutputStream.
Contoh
import [Link].*;
public class SalinFile {
public static void main(String args[]) throws IOException {
FileInputStream in = null;
FileOutputStream keluar = null;
coba {
in = new FileInputStream("[Link]");
out = new FileOutputStream("[Link]");
int c;
sementara ((c = [Link]()) != -1) {
[Link](c);
}
}akhirnya {
jika (in != null) {
[Link]();
}
jika (out != null) {
[Link]();
} } } }
Sekarang mari kita memiliki file [Link] dengan konten berikut:
Ini adalah tes untuk menyalin file.
$javac [Link]
$java SalinFile
Aliran Karakter
JavaBytestreams digunakan untuk melakukan input dan output byte 8-bit, sedangkan
Aliran karakter Java digunakan untuk melakukan input dan output untuk unicode 16-bit. Meskipun
ada banyak kelas yang terkait dengan aliran karakter tetapi kelas yang paling sering digunakan
adalah, FileReader dan FileWriter.
Meskipun secara internal FileReader menggunakan FileInputStream dan FileWriter menggunakan FileOutputStream tetapi
di sini perbedaan utamanya adalah FileReader membaca dua byte sekaligus dan FileWriter menulis dua
byte per kali.
Contoh
impor [Link].*;
public class CopyFile {
publik statis void utama(String args[]) melempar IOException {
FileReader in = null;
FileWriter keluar = null;
coba {
in = new FileReader("[Link]");
out = new FileWriter("[Link]");
int c;
sementara ((c = [Link]()) != -1) {
[Link](c);
}
}akhirnya {
jika (in != null) {
[Link]();
}
jika (out != null) {
[Link]();
}
}
}
}
Contoh: Tulis program untuk membaca data dari keyboard dan menuliskannya ke file [Link].
impor [Link].*;
kelas Test{
publik statis void main(String args[])
{
DataInputStream dis=new DataInputStream([Link]);
FileOutputstream fout=new
FileOutputStream("[Link]"); [Link]("Masukkan ")
text @ di akhir:"); char ch;
sementara((ch=(char)[Link]())!='@')
[Link](ch);
[Link]();
}
}
Output:javac [Link]
Uji Java
Ketika tidak ada lagi data yang tersedia untuk dibaca, maka akan mengembalikan -1.
→
Aliran Keluaran digunakan untuk mengirim data ke monitor. yaitu, PrintStream, untuk menampilkan data.
[Link].
[Link](ch);
Membaca data dari file teks menggunakan FileInputStream:
Kelas FileInputStream Java mengambil byte masukan dari sebuah file. Ini digunakan untuk membaca aliran data mentah.
byte seperti data gambar. Ini harus digunakan untuk membaca data yang berorientasi byte misalnya untuk membaca gambar,
audio, video, dll.
Contoh: Tulis program untuk membaca data dari [Link] menggunakan FileInputStream dan menampilkan
itu di monitor.
impor [Link].*;
kelas BacaFile
{
public static void main(String args[])
{
Kontainer
Container adalah komponen dalam AWT yang dapat mengandung komponen lain seperti tombol, bidang teks,
label dll. Kelas yang memperluas kelas Container dikenal sebagai kontainer seperti Frame, Dialog
dan Panel.
public void setSize(int width,int height) mengatur ukuran (lebar dan tinggi) dari komponen.
public void setLayout(LayoutManager m) mendefinisikan manajer tata letak untuk komponen.
public void setVisible(boolean status) mengubah visibilitas komponen, dengan
default salah.
Setiap kontainer memiliki manajer tata letak default; oleh karena itu, ketika Anda membuat kontainer baru, itu
dilengkapi dengan objek LayoutManager dari tipe yang sesuai. Anda dapat memasang tata letak baru
manajer kapan saja dengan metode setLayout(). Di bawah ini, kami mengatur manajer tata letak dari sebuah
wadah ke BorderLayout:
setLayout ( new BorderLayout( ) );
Setiap komponen menentukan tiga informasi penting yang digunakan oleh pengelola tata letak
dalam penempatan dan ukurannya: ukuran minimum, ukuran maksimum, dan ukuran yang disukai.
GridLayout mengambil jumlah baris dan kolom dalam konstruktornya. Jika Anda selanjutnya
memberikan terlalu banyak objek untuk dikelola, itu menambahkan kolom ekstra untuk membuat objek cocok. Anda juga bisa
atur jumlah baris atau kolom menjadi nol, yang berarti bahwa Anda tidak peduli berapa banyak elemen
manajer tata letak mengemas dalam dimensi itu.
Misalnya, GridLayout(2,0) meminta tata letak dengan dua baris dan jumlah yang tidak terbatas
kolom; jika Anda menempatkan sepuluh komponen ke dalam tata letak ini, Anda akan mendapatkan dua baris masing-masing lima kolom.
Applet berikut mengatur aGridLayout dengan tiga baris dan dua kolom sebagai tata letaknya
manajer
impor [Link].*;
/*
<applet code="Grid" width="500"
height="500"> </applet>
*/
publik kelas Grid diperluas [Link]
{
publik void init()
{
setLayout( new GridLayout( 3, 2 ));
Lima tombol ditempatkan, berurutan, dari kiri ke kanan, atas ke bawah, dengan satu tempat kosong.
Tata Letak Perbatasan
BorderLayoutsedikit lebih menarik. Ini mencoba mengatur objek dalam salah satu dari lima geografis
locations: "North," "South," "East," "West," and "Center," possibly with some padding between.
BorderLayoutapakah tata letak default untukJendeladanKuda-kuda objek. Karena masing-masing
komponen terkait dengan arah,BorderLayoutdapat mengelola paling banyak lima komponen; itu
memampatkan atau meregangkan komponen-komponen tersebut untuk sesuai dengan batasannya.
Ketika kita menambahkan komponen ke dalam tata letak border, kita perlu menentukan baik komponen maupun
posisi di mana untuk menambahkannya. Untuk melakukannya, kami menggunakan versi yang overloaded daritambah()metode yang
mengambil argumen tambahan sebagai batasan.
Applet berikut menetapkan sebuahBorderLayouttata letak dan menambahkan lima tombol kami lagi, dinamai untuk mereka
locations;
import [Link].*;
/*
<applet code="Border" width="500" height="500">
</applet>
*/
kelas publik Border memperluas [Link]
{
publik void init()
{
setLayout( new [Link]() );
tambahkan( tombol baru("Utara"), "Utara" ); tambahkan(
Tombol baru("Timur"), "Timur" );
tambahkan( new Button("Selatan"), "Selatan" );
tambahkan( tombol baru("Barat"), "Barat" );
tambah( new Tombol("Tengah"), "Tengah" );
}
}
Kotak Centang:
Kotak centang adalah kontrol yang digunakan untuk mengaktifkan atau menonaktifkan sebuah opsi. Ini terdiri dari sebuah kotak kecil yang
dapat berisi tanda centang atau tidak. Ada label yang terkait dengan setiap kotak centang yang
menjelaskan opsi apa yang diwakili oleh kotak tersebut. Anda mengubah keadaan kotak centang dengan mengklik pada
Kotak centang dapat digunakan secara individu atau sebagai bagian dari grup.
Demonstrasikan
AreaTeks. impor
[Link].*; impor
[Link].*;
/*
<applet code="TextAreaDemo" width=300
height=250> </applet>
*/
kelas publik TextAreaDemo memperluas Applet
{
public void init()
{
Ada dua cara untuk membangun desain perangkat lunak. Salah satu cara adalah untuk
buatlah sesederhana mungkin bahwa jelas tidak ada kekurangan. Dan cara lainnya adalah untuk
buatlah sedemikian rumit sehingga tidak ada kekurangan yang jelas. -C.A.R. Hoare
Ada cerita lama tentang seseorang yang berharap komputernya bisa digunakan dengan mudah seperti
teleponnya. " + "Keinginan itu telah menjadi kenyataan, " + "karena saya tidak lagi tahu cara menggunakan saya
telepon. " -Bjarne Stroustrup, AT&T, (penemu C++)"
TextArea teks = new TextArea(val, 10, 30);
tambah(teks);
}
}
GrupKotakCentang
Dimungkinkan untuk membuat satu set kotak centang yang saling eksklusif di mana satu dan hanya satu
kotak centang dalam grup hanya dapat dicentang satu kali. Kotak centang ini sering disebut
tombol radio. Tombol radio mewakili tombol berbentuk bulat sehingga hanya satu yang dapat dipilih
dipilih dari sebuah panel. Tombol radio dapat dibuat menggunakan kelas CheckboxGroup dan
Kelas kotak centang.
/*
<applet code="CBGroup" width=250 height=200>
</applet>
*/
Daftar
Kelas List menyediakan daftar pilihan bergulir yang kompak dan memilih banyak. Tidak seperti theChoice
objek, yang hanya menunjukkan satu item yang dipilih di menu, objek Daftar dapat berupa
dibangun untuk menunjukkan sejumlah pilihan di jendela yang terlihat. Itu juga dapat dibuat untuk
izinkan pemilihan ganda. Daftar menyediakan konstruktor ini: Daftar( )
Daftar(int numRows)
Daftar(int jumlahBaris, boolean pilihBanyak)
Kotak daftar mirip dengan kotak pilihan, ini memungkinkan pengguna untuk memilih beberapa item.
// Tunjukkan Daftar.
import [Link].*; import
[Link].*; import
[Link].*; /*
<applet code="ListDemo" width=300 height=180>
</applet>
*/
kelas Publik ListDemo memperluas Applet menerapkan ActionListener
{ Daftar os, penelusur;
String msg = "";
publik void init() { os
= new List(4, true);
void drawArc(int atas, int kiri, int lebar, int tinggi, int sudutAwal, int sudutRentang)
void fillArc(int atas, int kiri, int lebar, int tinggi, int sudutAwal, int sudutGulung)
Busur dibatasi oleh persegi panjang yang sudut kiri atasnya ditentukan oleh atas,kiri dan yang
width and height are specified by width and height. The arc is drawn from startAngle through
jarak sudut yang ditentukan oleh sweepAngle. Sudut dinyatakan dalam derajat.
Nol derajat berada di horizontal, di posisi jam tiga. Busur digambar
berlawanan arah jarum jam jika sweepAngle positif, dan searah jarum jam jika sweepAngle negatif.
Oleh karena itu, untuk menggambar busur dari pukul dua belas hingga pukul enam, sudut awalnya adalah 90
dan sudut sapuan 180.
Menggambar Poligon
It is possible to draw arbitrarily shaped figures using drawPolygon( ) and fillPolygon(
) yang ditunjukkan di sini:
Selain komponen yang sudah dikenal, seperti tombol, kotak centang, dan label, Swing
menyediakan beberapa tambahan menarik, termasuk panel ber-tab, panel gulir, pohon, dan tabel.
Bahkan komponen yang sudah dikenal seperti tombol memiliki lebih banyak kemampuan di Swing. Sebagai contoh, sebuah
tombol dapat memiliki gambar dan string teks yang terkait dengannya. Juga, gambar dapat berupa
berubah seiring dengan perubahan keadaan tombol.
Tidak seperti komponen AWT, komponen Swing tidak diimplementasikan oleh spesifik platform
kode. Sebaliknya, mereka ditulis sepenuhnya dalam Java dan, oleh karena itu, tidak bergantung pada platform.
Istilah ringan digunakan untuk menggambarkan elemen-elemen tersebut.
✓
Paket [Link] menyediakan kelas untuk API java swing seperti JButton, JTextField, JTextArea,
JRadioButton, JCheckbox, JMenu, JColorChooser etc.
AWT Ayunan
Komponen AWT bergantung pada platform. Komponen Swing dibuat murni dalam java dan
mereka independen platform.
Komponen AWT memerlukan paket [Link]. Ayunan komponen yang diperlukan [Link]
paket.
AWT adalah lapisan tipis kode di atas sistem operasi. Swing jauh lebih besar. Swing juga memiliki sangat
fungsi yang jauh lebih kaya.
AWT adalah singkatan dari alat jendela abstrak. Swing juga disebut sebagai JFC (Java Foundation)
kelas).
Fitur ini tidak didukung di AWT. Kita dapat memiliki tampilan dan nuansa yang berbeda di Swing.
Menggunakan AWT, Anda harus mengimplementasikan banyakSwing memiliki mereka yang terintegrasi.
hal-hal sendiri.
Note:To close the frame, we can take the help of getDefaultCloseOperation () method of
Kelas JFrame, seperti yang ditunjukkan di sini: getDefaultCloseOperation (konstanta);
Kaca Jendela: Dalam ayunan, komponen terpasang hanya pada kaca jendela. Sebuah jendela
pane mewakili area bebas di jendela di mana beberapa teks atau komponen dapat ditampilkan. Untuk
misalnya, kita dapat membuat sebuah bingkai menggunakan kelas JFrame di [Link] yang berisi area kosong
di dalamnya, area gratis ini disebut 'kisi jendela'. Empat jenis kisi jendela tersedia di
paket [Link].
Layered Pane:This pane lies below the root pane. When we want to take several components
sebagai sebuah grup, kami melampirkan mereka di panel berlapis. Kami dapat mengakses panel ini dengan memanggil
metode getLayeredPane() dari kelas JFrame.
Content Pane:This is the bottom most pane of all. Individual components are attached to this
pane. Untuk mencapai pane ini, kita bisa memanggil metode getContentPane() dari kelas JFrame.
KOTAK TEKS
Field teks Swing dikapsulasi oleh kelas JTextComponent, yang memperluas JComponent.
Ini menyediakan fungsionalitas yang umum untuk komponen teks Swing. Salah satu subclass-nya adalah
JTextField, yang memungkinkan Anda untuk mengedit satu baris teks. Beberapa konstruktor nya ditunjukkan di sini:
JTextField( )
JTextField(int kolom)
JTextField(String s, int cols)
JTextField(String s)
impor [Link].*;
impor [Link].*;
/*
<applet code="JTextFieldDemo" width=300 height=50>
BUTTONS
Tombol swing menyediakan fitur yang tidak ditemukan di kelas Button yang ditentukan oleh AWT. Untuk
misalnya, Anda dapat mengaitkan ikon dengan tombol Swing. Tombol Swing adalah subclass dari
Kelas AbstractButton, yang mengextends JComponent. AbstractButton содержит banyak metode yang
memungkinkan Anda untuk mengontrol perilaku tombol, kotak centang, dan tombol radio.
Kelas JButton
Kelas JButton menyediakan fungsi tombol tekan. JButton memungkinkan sebuah ikon, sebuah string, atau
keduanya dikaitkan dengan tombol dorong. Beberapa konstruktornya ditunjukkan di sini:
· Untuk membuat JButton dengan teks: JButton b = new JButton("OK");
· Untuk membuat JButton dengan gambar: JButton b = new JButton (ImageIcon ii);
· Untuk membuat JButton dengan teks & gambar: JButton b = new JButton ("OK", ImageIcon ii);
Dimungkinkan untuk membuat komponen di swing dengan gambar di atasnya. Gambar ditentukan oleh
Objek kelas ImageIcon.
impor [Link].*;
impor [Link].*;
mengimpor [Link].*;
/*
<applet code="JButtonDemo" width=250 height=300>
</applet>
*/
public class JButtonDemo extends JApplet implements ActionListener {
JTextField jtf;
publik void init() {
// Dapatkan panel konten
Kontainer contentPane = getContentPane();
[Link](new FlowLayout());
// Tambahkan tombol ke panel konten
cb = new JCheckBox("C++",
normal); [Link](rollover);
[Link](selected);
[Link](this);
[Link](cb);
cb = new JCheckBox("Java",normal);
[Link](rollover);
[Link](selected);
[Link](this);
[Link](cb);
cb = new JCheckBox("Perl",normal);
[Link](rollover);
[Link](selected);
[Link](this);
[Link](cb);
Tambahkan field teks ke panel konten
jtf = new JTextField(15);
[Link](jtf);
}
publik void itemStateChanged(ItemEvent ie) {
JCheckBox cb = (JCheckBox)[Link]();
[Link]([Link]());
}
}
TOMBOL RADIO
Tombol radio didukung oleh kelas JRadioButton, yang merupakan implementasi konkret dari
AbstractButton. Kelas induknya yang langsung adalah JToggleButton, yang memberikan dukungan untuk dua-
tombol status. Beberapa konstruktor nya ditunjukkan di sini: