Objektum orientált programozás Java-ban

Hasonló dokumentumok
Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

OOP: Java 8.Gy: Abstract osztályok, interfészek

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Programozási nyelvek Java

Osztályok. 4. gyakorlat

Programozás I. Első ZH segédlet

Ja J v a a v a há h l á óz ó a z t a i al a ka k l a maz ma á z s á o s k o Socket, URL

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Java programozási nyelv 7. rész Java osztálykönyvtár 1.

C#, OOP. Osztályok tervezése C#-ban

A Jáva programozási nyelv rejtelmei


Abstract osztályok és interface-ek. 7-dik gyakorlat

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

JNDI - alapok. Java Naming and Directory Interface

Segédanyag: Java alkalmazások gyakorlat

Java programozási nyelv 5. rész Osztályok III.

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Segédanyag: Java alkalmazások gyakorlat

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani

Java programozási nyelv

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

OOP: Java 8.Gy: Gyakorlás

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Segédanyag: Java alkalmazások gyakorlat

Java programozási nyelv 4. rész Osztályok II.

és az instanceof operátor

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozási nyelvek Java

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

OOP: Java 4.Gy: Java osztályok

Java RMI Áttekintés. A Java RMI. A Java RMI architektúrája. Ficsor Lajos. Általános Infromatikai Tanszék Miskolci Egyetem 1.

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Bevezetés a Java programozási nyelvbe

Java programozási nyelv 6. rész Java a gyakorlatban

Java osztálykönyvtár és használata


List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

A Java nyelv. Java programozás alapjai. Hello world futtatása. Java adattípusok. Egyszerű adattípusok.

JAVA SE/ME tanfolyam tematika

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Szoftvertechnológia alapjai Java előadások

Bánsághi Anna

JAVA PROGRAMOZÁS 2.ELŐADÁS

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

OOP: Java 7.Gy: Öröklődés, referenciák

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

OOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés

Az új be- és kimenet könyvtár

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Kivételkezelés, naplózás. Exception handling, logging

Grafikus felhasználói felületek. Abstract Window Toolkit, a java.awt és java.awt.event csomagok

Bevezetés a Java programozási nyelvbe

TestLine - OO Programozás alapjai Minta feladatsor

Szoftvertechnológia alapjai Java előadások

7. K: JAVA alapok Konzultáció

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

Java IX. telkezelés a Java-ban

Programozási nyelvek Java

Objektum Orientált Programozás. 5. JAVA osztályok 21/1B IT MAN

Magas szintű programozási nyelvek 2 Előadás jegyzet

Java IX. telkezelés a Java-ban

BME MOGI Gépészeti informatika 8.

Java RMI Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. javarmi / 1

Programozási nyelvek II.: JAVA

Stateless Session Bean

Java Programozás 11. Ea: MVC modell

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

Programozás II. labor

Java és web programozás

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

Programozási nyelvek II.: JAVA, 11. gyakorlat

JAVA PROGRAMOZÁS 3.ELŐADÁS

A Java nyelv IV. rész - appletek, hálózati alkalmazások fejlesztése

Objektumorientált programozás C# nyelven

Objektumorientált programozás Java-ban

Objektumorientált programozás C# nyelven

JAVA nyelvi alapok. Adatbányászati technikák (VISZM185) Dávid István

Gábor Dénes Főiskola (IAI) Programozási technológia (Java) - I. / 1

Programozási nyelvek II.: JAVA

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Osztálytervezés és implementációs ajánlások

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {

Osztálytervezés és implementációs ajánlások

Származtatási mechanizmus a C++ nyelvben

OOP #14 (referencia-elv)

C# osztályok. Krizsán Zoltán

Java és web programozás

Programozási nyelvek II.: JAVA, 3. gyakorlat

Collections. Összetett adatstruktúrák

Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás

Objektumorientált programozás C# nyelven

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Java III. I I. Osztálydefiníció (Bevezetés)

Programozási nyelvek Java

Átírás:

Objektum orientált programozás Java-ban String licenseplate; double speed; double maxspeed; String licenseplate; double speed; double maxspeed; Car c; c = new Car(); Car c = new Car(); String licenseplate; double speed; double maxspeed; Car c = new Car(); Osztályok definiálása Objektumok létrehozása (new) Objektum attribútumainak elérése c.licenseplate = "New York A45 636"; c.speed = 70.0; c.maxspeed = 123.45; System.out.println(c.licensePlate + " is moving at " + c.speed + "kilometers per hour."); Egy Car objektum használata egy másik osztályban String licenseplate; double speed; double maxspeed; class CarTest { public static void main(string args[]) { Car c = new Car(); c.licenseplate = "New York A45 636"; c.speed = 70.0; c.maxspeed = 123.45; System.out.println(c.licensePlate + " is moving at " + c.speed + "kilometers per hour."); String licenseplate; // tagváltozó double speed; // tagváltozó double maxspeed; // tagváltozó Attribútumok (tagváltozók)

Metódusok (tagfüggvények) String licenseplate; // e.g. "New York A456 324" double speed; // kilometers per hour double maxspeed; // kilometers per hour // accelerate to maximum speed // put the pedal to the metal void floorit() // metódus { A metódusok hívása String licenseplate; // e.g. "New York A456 324" double speed; // kilometers per hour double maxspeed; // kilometers per hour // accelerate to maximum speed // put the pedal to the metal void floorit() { class CarTest2 { public static void main(string args[]) { Car c = new Car(); c.licenseplate = "New York A45 636"; c.speed = 0.0; c.maxspeed = 123.45; System.out.println(c.licensePlate + " is moving at " + c.speed + " kilometers per hour."); c.floorit(); System.out.println(c.licensePlate + " is moving at " + c.speed + " kilometers per hour."); Tagváltozók használata metódusokban String licenseplate; // e.g. "New York A456 324" double speed; // kilometers per hour double maxspeed; // kilometers per hour void print() { System.out.println(licensePlate + " is moving at " + speed + " kilometers per hour "); Argumentumok átadása a metódusoknak String licenseplate; // e.g. "New York A456 324" double speed; // kilometers per hour

double maxspeed; // kilometers per hour void accelerate(double deltav) { speed = speed + deltav; if (speed > maxspeed) { speed = maxspeed; if (speed < 0.0) { speed = 0.0; A this referencia használata - hivatkozás az objektumra String licenseplate; // e.g. "New York A456 324" double speed; // kilometers per hour double maxspeed; // kilometers per hour void accelerate(double deltav) { speed = this.speed + deltav; if (this.speed > this.maxspeed) { if (this.speed < 0.0) { void setnameurldescription(string s1, String s2, String s3) { this.name = s1; this.url = s2; this.description = s3; Példa a paraméterek átadására String licenseplate; // e.g. "New York A456 324" double speed; // kilometers per hour double maxspeed; // kilometers per hour // accelerate to maximum speed // put the pedal to the metal void floorit() { void accelerate(double deltav) { this.speed = this.speed + deltav; if (this.speed > this.maxspeed) { if (this.speed < 0.0) { class CarTest3 { public static void main(string args[]) { Car c = new Car(); c.licenseplate = "New York A45 636"; c.speed = 0.0; c.maxspeed = 123.45;

System.out.println(c.licensePlate + " is moving at " + c.speed + " kilometers per hour."); for (int i = 0; i < 15; i++) { c.accelerate(10.0); System.out.println(c.licensePlate + " is moving at " + c.speed + " kilometers per hour."); % java CarTest3 New York A45 636 is moving at 0.0 kilometers per hour. New York A45 636 is moving at 10.0 kilometers per hour. New York A45 636 is moving at 20.0 kilometers per hour. New York A45 636 is moving at 30.0 kilometers per hour. New York A45 636 is moving at 40.0 kilometers per hour. New York A45 636 is moving at 50.0 kilometers per hour. New York A45 636 is moving at 60.0 kilometers per hour. New York A45 636 is moving at 70.0 kilometers per hour. New York A45 636 is moving at 80.0 kilometers per hour. New York A45 636 is moving at 90.0 kilometers per hour. New York A45 636 is moving at 100.0 kilometers per hour. New York A45 636 is moving at 110.0 kilometers per hour. New York A45 636 is moving at 120.0 kilometers per hour. New York A45 636 is moving at 123.45 kilometers per hour. New York A45 636 is moving at 123.45 kilometers per hour. New York A45 636 is moving at 123.45 kilometers per hour. Tagváltozók értékének beállítása metódusok segítségével String licenseplate; // e.g. "New York A456 324" double speed; // kilometers per hour double maxspeed; // kilometers per hour // setter method for the license plate property void setlicenseplate(string licenseplate) { // accelerate to maximum speed // put the pedal to the metal void floorit() { void accelerate(double deltav) { this.speed = this.speed + deltav; if (this.speed > this.maxspeed) { if (this.speed < 0.0) { String getlicenseplate() { return this.licenseplate; Metódusok visszatérési értéke

Metódusok visszatérési értéke - példa String licenseplate; // e.g. "New York A456 324" double speed; // kilometers per hour double maxspeed; // kilometers per hour // getter (accessor) methods String getlicenseplate() { return this.licenseplate; double getmaxspeed() { return this.maxspeed; double getspeed() { return this.speed; // accelerate to maximum speed // put the pedal to the metal void floorit() { void accelerate(double deltav) { this.speed = this.speed + deltav; if (this.speed > this.maxspeed) { if (this.speed < 0.0) { Konstruktorok - I. Car c = new Car(); ------------------------------------------------------------ Car() { this.licenseplate = ""; this.maxspeed = 120.0; Car(String licenseplate, double speed, double maxspeed) { this.speed = speed; Car(String licenseplate, double maxspeed) { Konstruktorok - II. String licenseplate; // e.g. "New York A456 324" double speed; // kilometers per hour double maxspeed; // kilometers per hour

Car(String licenseplate, double maxspeed) { // getter (accessor) methods String getlicenseplate() { return this.licenseplate; double getmaxspeed() { return this.speed; double getspeed() { return this.maxspeed; // setter method for the license plate property void setlicenseplate(string licenseplate) { // accelerate to maximum speed // put the pedal to the metal void floorit() { void accelerate(double deltav) { this.speed = this.speed + deltav; if (this.speed > this.maxspeed) { if (this.speed < 0.0) { class CarTest4 { public static void main(string args[]) { A konstruktorok használata Car c = new Car("New York A45 636", 123.45); System.out.println(c.licensePlate + " is moving at " + c.speed + " kilometers per hour."); for (int i = 0; i < 15; i++) { c.accelerate(10.0); System.out.println(c.licensePlate + " is moving at " + c.speed + " kilometers per hour."); A speed tagváltozó használata az objektumon belül void accelerate(double deltav) { this.speed = this.speed + deltav;

if (this.speed > this.maxspeed) { if (this.speed < 0.0) { Car(String licenseplate, double maxspeed) { if (maxspeed >= 0.0) { maxspeed = 0.0; ------------------------------------------------- Car c = new Car("New York A234 567", 100.0); c.speed = 150.0; Tagváltozók és metódusok láthatóságának (elérhetőségének) szabályozása (access protection) Car c = new Car("New York A234 567", 100.0); c.speed = 150.0; ------------------------------------------------------------------- public private String licenseplate; // e.g. "New York A456 324" private double speed; // kilometers per hour private double maxspeed; // kilometers per hour public Car(String licenseplate, double maxspeed) { if (maxspeed >= 0.0) { maxspeed = 0.0; // getter (accessor) methods public String getlicenseplate() { return this.licenseplate; public double getmaxspeed() { return this.speed; public double getspeed() { return this.maxspeed; // setter method for the license plate property public void setlicenseplate(string licenseplate) { // accelerate to maximum speed // put the pedal to the metal public void floorit() { public void accelerate(double deltav) { this.speed = this.speed + deltav; if (this.speed > this.maxspeed) {

if (this.speed < 0.0) { Példa: A hozzáférési jogok szintjei - Static tagváltozók használata public private String licenseplate; // e.g. "New York A456 324" private double speed; // kilometers per hour private double maxspeed; // kilometers per hour static String version = "1.0"; public Car(String licenseplate, double maxspeed) { if (maxspeed >= 0.0) { maxspeed = 0.0; // getter (accessor) methods public String getlicenseplate() { return this.licenseplate; public double getmaxspeed() { return this.speed; public double getspeed() { return this.maxspeed; public static String getversion() { return version; // setter method for the license plate property public void setlicenseplate(string licenseplate) { // accelerate to maximum speed // put the pedal to the metal public void floorit() { public void accelerate(double deltav) { this.speed = this.speed + deltav; if (this.speed > this.maxspeed) { if (this.speed < 0.0) { Hivatkozás a static tagváltozókra Car c = new Car("New York", 89.7); String s = c.getversion(); String s = Car.getVersion(); Error: Can't make static reference to method void print() in

class test. Static (class) tagváltozók class Alkalmazott { int életkor; int fizetés; static int hivatalosminimálbér; int mennyifizetésjárneki() { if (hivatalosminimálbér > Math.round(fizetés * (1 + életkor/100.0))) { return hivatalosminimálbér; else { return (int) Math.round(fizetés * (1 + életkor/100.0)); Alkalmazott = béla new Alkalmazott(); Alkalmazott = marci new Alkalmazott(); Alkalmazott = ilona new Alkalmazott();

Öröklés class Alkalmazott { int életkor; int fizetés; class Manager extends Alkalmazott { int autóazonosító; class Nagyfônök extends Manager { int titkárnôazonosító; int villaazonosító; Alkalmazott = béla new Alkalmazott(); Manager = marci new Manager(); Nagyfônök = ilona new Nagyfônök();

Overloading public private String licenseplate; // e.g. "New York A456 324" private double speed; // kilometers per hour private double maxspeed; // kilometers per hour // constructors public Car(String licenseplate, double maxspeed) { if (maxspeed >= 0.0) { maxspeed = 0.0; public Car(String licenseplate, double speed, double maxspeed) { if (maxspeed >= 0.0) { maxspeed = 0.0; if (speed < 0.0) { speed = 0.0; if (speed <= maxspeed) { this.speed = speed; this.speed = maxspeed; // other methods... Error: Method Car(double) not found in class Car. Car.java line 17 this használata a konstruktorokban public Car(String licenseplate, double maxspeed) { Car(String licenseplate, 0.0, double maxspeed); public Car(String licenseplate, double maxspeed) { this(string licenseplate, 0.0, double maxspeed); ------------------------------------------------- public private String licenseplate; // e.g. "New York A456 324" private double speed; // kilometers per hour private double maxspeed; // kilometers per hour // constructors public Car(String licenseplate, double maxspeed) { this(string licenseplate, 0.0, double maxspeed);

public Car(String licenseplate, double speed, double maxspeed) { if (maxspeed >= 0.0) { maxspeed = 0.0; if (speed < 0.0) { speed = 0.0; if (speed <= maxspeed) { this.speed = speed; this.speed = maxspeed; // other methods... Operator Overloading Inheritance (öröklődés) // class Car no inheritance public private String licenseplate; // e.g. "New York A456 324" private double speed; // kilometers per hour private double maxspeed; // kilometers per hour private String make; // e.g. "Ford" private String model; // e.g. "Taurus" private int year; // e.g. 1997, 1998, 1999, 2000, 2001, etc. private int numberpassengers; // e.g. 4 private int numberwheels = 4; // all cars have four wheels private int numberdoors; // e.g. 4 // constructors public Car(String licenseplate, double maxspeed, String make, String model, int year, int numberofpassengers, int numberofdoors) { this(licenseplate, 0.0, maxspeed, make, model, year, numberofpassengers, numberofdoors); public Car(String licenseplate, double speed, double maxspeed, String make, String model, int year, int numberofpassengers) { this(licenseplate, speed, maxspeed, make, model, year, numberofpassengers, 4); public Car(String licenseplate, double speed, double maxspeed, String make, String model, int year, int numberofpassengers, int numberofdoors) { // I could add some more constraints like the // number of doors being positive but I won't // so that this example doesn't get too big. this.make = make; this.model = model; this.year = year; this.numberpassengers = numberofpassengers; this.numberdoors = numberofdoors; if (maxspeed >= 0.0) { maxspeed = 0.0; if (speed < 0.0) {

speed = 0.0; if (speed <= maxspeed) { this.speed = speed; this.speed = maxspeed; // getter (accessor) methods public String getlicenseplate() { return this.licenseplate; public String getmake() { return this.make; public String getmodel() { return this.model; public int getyear() { return this.year; public int getnumberofpassengers() { return this.numberpassengers; public int getnumberofwheels() { return this.numberwheels; // public int getnumberofdoors() { // return this.numberdoors; // public double getmaxspeed() { return this.speed; public double getspeed() { return this.maxspeed; // setter method for the license plate property public void setlicenseplate(string licenseplate) { // accelerate to maximum speed // put the pedal to the metal public void floorit() { public void accelerate(double deltav) { this.speed = this.speed + deltav; if (this.speed > this.maxspeed) { if (this.speed < 0.0) { // class Motorcycle - no inheritance public class Motorcycle { private String licenseplate; // e.g. "New York A456 324" private double speed; // kilometers per hour private double maxspeed; // kilometers per hour private String make; // e.g. "Harley-Davidson" private String model; // e.g. "panhead" private int year; // e.g. 1997, 1998, 1999, 2000, 2001, etc. private int numberpassengers; // e.g. 4 private int numberwheels = 2; // all motorcycles have two wheels // constructors public Motorcycle(String licenseplate, double maxspeed,

String make, String model, int year, int numberofpassengers) { this(licenseplate, maxspeed, make, model, year, numberofpassengers); public Motorcycle(String licenseplate, double speed, double maxspeed, String make, String model, int year, int numberofpassengers) { this(licenseplate, speed, maxspeed, make, model, year, numberofpassengers, 2); public Motorcycle(String licenseplate, double speed, double maxspeed, String make, String model, int year, int numberofpassengers, int numberofwheels) { // I could add some more constraints like the // number of doors being positive but I won't // so that this example doesn't get too big. this.make = make; this.model = model; this.year = year; this.numberpassengers = numberofpassengers; if (maxspeed >= 0.0) { maxspeed = 0.0; if (speed < 0.0) { speed = 0.0; if (speed <= maxspeed) { this.speed = speed; this.speed = maxspeed; // getter (accessor) methods public String getlicenseplate() { return this.licenseplate; public String getmake() { return this.make; public String getmodel() { return this.model; public int getyear() { return this.year; public int getnumberofpassengers() { return this.numberpassengers; public int getnumberofwheels() { return this.numberwheels; public int getnumberofdoors() { return this.numberdoors; public double getmaxspeed() { return this.speed; public double getspeed() { return this.maxspeed; // setter method for the license plate property public void setlicenseplate(string licenseplate) { // accelerate to maximum speed // put the pedal to the metal public void floorit() { public void accelerate(double deltav) { this.speed = this.speed + deltav;

if (this.speed > this.maxspeed) { if (this.speed < 0.0) { // class MotorVehicle common parent public class MotorVehicle { protected String licenseplate; // e.g. "New York A456 324" protected double speed; // kilometers per hour protected double maxspeed; // kilometers per hour protected String make; // e.g. "Harley-Davidson", "Ford" protected String model; // e.g. "Fatboy", "Taurus" protected int year; // e.g. 1998, 1999, 2000, 2001, etc. protected int numberpassengers; // e.g. 4 protected int numberwheels; // constructors public MotorVehicle(String licenseplate, double maxspeed, String make, String model, int year, int numberofpassengers) { this(licenseplate, 0.0,maxSpeed, make, model, year, numberofpassengers); // public MotorVehicle(String licenseplate, double speed, double maxspeed, // String make, String model, int year, int numberofpassengers) { // this(licenseplate, speed, maxspeed, make, model, year, numberofpassengers); // public MotorVehicle(String licenseplate, double speed, double maxspeed, String make, String model, int year, int numberofpassengers) { // I could add some more constraints like the // number of doors being positive but I won't // so that this example doesn't get too big. // this.make = make; this.model = model; this.year = year; this.numberpassengers = numberofpassengers; if (maxspeed >= 0.0) { maxspeed = 0.0; if (speed < 0.0) { speed = 0.0; if (speed <= maxspeed) { this.speed = speed; this.speed = maxspeed; // getter (accessor) methods public String getlicenseplate() { return this.licenseplate; public String getmake() { return this.make; public String getmodel() { return this.model; public int getyear() { return this.year;

public int getnumberofpassengers() { return this.numberpassengers; public int getnumberofwheels() { return this.numberwheels; public double getmaxspeed() { return this.speed; public double getspeed() { return this.maxspeed; // setter method for the license plate property protected void setlicenseplate(string licenseplate) { // accelerate to maximum speed // put the pedal to the metal public void floorit() { public void accelerate(double deltav) { this.speed = this.speed + deltav; if (this.speed > this.maxspeed) { if (this.speed < 0.0) { // class Motorcycle inheritance public class Motorcycle extends MotorVehicle { protected int numberwheels = 2; // constructors public Motorcycle(String licenseplate, double maxspeed, String make, String model, int year, int numberofpassengers) { this(licenseplate, 0.0, maxspeed, make, model, year, numberofpassengers); public Motorcycle(String licenseplate, double speed, double maxspeed, String make, String model, int year, int numberofpassengers) { // invoke superclass constructor super(licenseplate, speed, maxspeed, make, model, year, numberofpassengers); public int getnumberofwheels() { return this.numberwheels; // class Car - inheritance public class Car extends MotorVehicle { protected int numberwheels = 4; protected int numberdoors; // constructors public Car(String licenseplate, double maxspeed, String make, String model, int year, int numberofpassengers, int numberofdoors) { this(licenseplate, 0.0, maxspeed, make, model, year, numberofpassengers, numberofdoors);

public Car(String licenseplate, double speed, double maxspeed, String make, String model, int year, int numberofpassengers) { this(licenseplate, speed, maxspeed, make, model, year, numberofpassengers, 4); public Car(String licenseplate, double speed, double maxspeed, String make, String model, int year, int numberofpassengers, int numberofdoors) { super(licenseplate, speed, maxspeed, make, model, year, numberofpassengers); this.numberdoors = numberofdoors; public int getnumberofwheels() { return this.numberwheels; public int getnumberofdoors() { return this.numberdoors; Subosztályok és polimorfizmus Többszintű öröklődés // class SlowCar - inheritance public class SlowCar extends Car { private double speedlimit = 112.65408; // kph == 70 mph public SlowCar(String licenseplate, double speed, double maxspeed, String make, String model, int year, int numberofpassengers, int numdoors) { super(licenseplate, speed, maxspeed, make, model, year, numberofpassengers, numdoors); if (speed > speedlimit) { speed = speedlimit; public void accelerate(double deltav) { double speed = this.speed + deltav; if (speed > this.maxspeed) { speed = this.maxspeed; if (speed > speedlimit) { speed = speedlimit; if (speed < 0.0) { speed = 0.0; this.speed = speed; A Java osztálykönyvtárak (class library), csomagok package java.applet package java.awt package java.awt.datatransfer package java.awt.event package java.awt.image package java.awt.peer package java.beans package java.io package java.lang

package java.lang.reflect package java.math package java.net package java.rmi package java.rmi.dgc package java.rmi.registry package java.rmi.server package java.security package java.security.acl package java.security.interfaces package java.sql package java.text package java.util package java.util.zip Példa: a java.net csomag A java.net interfészei ContentHandlerFactory FileNameMap SocketImplFactory URLStreamHandlerFactory A java.net osztályai ContentHandler DatagramPacket DatagramSocket DatagramSocketImpl HttpURLConnection InetAddress MulticastSocket ServerSocket Socket SocketImpl URL URLConnection URLEncoder URLStreamHandler A java.net különleges állapotai BindException ConnectException MalformedURLException NoRouteToHostException ProtocolException SocketException UnknownHostException UnknownServiceException Az URL osztály az osztálykönyvtárban public URL(String protocol, String host, int port, String file) throws MalformedURLException

public URL(String protocol, String host, String file) throws MalformedURLException public URL(String spec) throws MalformedURLException public URL(URL context, String spec) throws MalformedURLException public int getport() public String getfile() public String getprotocol() public String gethost() public String getref() public boolean equals(object obj) public int hashcode() public boolean samefile(url other) public String tostring() public URLConnection openconnection() throws IOException public final InputStream openstream() throws IOException public static synchronized void seturlstreamhandlerfactory(urlstreamhandlerfactory factory) public class URLSplitter { Egy osztály használata az osztálykönyvtárból public static void main(string[] args) { for (int i = 0; i < args.length; i++) { try { java.net.url u = new java.net.url(args[i]); System.out.println("Protocol: " + u.getprotocol()); System.out.println("Host: " + u.gethost()); System.out.println("Port: " + u.getport()); System.out.println("File: " + u.getfile()); System.out.println("Ref: " + u.getref()); catch (java.net.malformedurlexception e) { System.err.println(args[i] + " is not a valid URL"); % java SplitURL http://www.poly.edu Protocol: http Host: www.poly.edu Port: -1 File: / Ref: null import java.net.url; import java.net.malformedurlexception; public class URLSplitter { public static void main(string[] args) { Osztályok importálása for (int i = 0; i < args.length; i++) { try { URL u = new URL(args[i]); System.out.println("Protocol: " + u.getprotocol()); System.out.println("Host: " + u.gethost()); System.out.println("Port: " + u.getport()); System.out.println("File: " + u.getfile()); System.out.println("Ref: " + u.getref()); catch (MalformedURLException e) { System.err.println(args[i] + " is not a valid URL");

Csomagok importálása import java.net.*; public class URLSplitter { public static void main(string[] args) { for (int i = 0; i < args.length; i++) { try { URL u = new URL(args[i]); System.out.println("Protocol: " + u.getprotocol()); System.out.println("Host: " + u.gethost()); System.out.println("Port: " + u.getport()); System.out.println("File: " + u.getfile()); System.out.println("Ref: " + u.getref()); catch (MalformedURLException e) { System.err.println(args[i] + " is not a valid URL"); A final kulcsszó final osztályok public final class String public final String convertcurrency() public class Physics { public static final double c = 2.998E8; public abstract class MotorVehicle { final metódusok final mezők final argumentumok abstract Interfészek Az interfészek jelentik az absztrakció következő szintjét. public interface Import { public double calculatetariff();

Az interfészek implementálása public class Car extends MotorVehicle implements Import { int numwheels = 4; public double calculatetariff() { return this.price * 0.1; import java.io.*; public class Car extends MotorVehicle implements Import, Serializable, Cloneable { int numwheels = 4; public double calculatetariff() { return this.price * 0.1; package com.macfaq.net; import java.net.*; Saját csomagok használata public class URLSplitter { public static void main(string[] args) { for (int i = 0; i < args.length; i++) { try { URL u = new URL(args[i]); System.out.println("Protocol: " + u.getprotocol()); System.out.println("Host: " + u.gethost()); System.out.println("Port: " + u.getport()); System.out.println("File: " + u.getfile()); System.out.println("Ref: " + u.getref()); catch (MalformedURLException e) { System.err.println(args[i] + " is not a valid URL"); % javac -d /home/elharo/classes SplitURL.java public class HelloThere { public static void main(string[] args) { Kivételek kezelése (Exceptions) try-catch try { System.out.println("Hello " + args[0]); catch (ArrayIndexOutOfBoundsException e) { System.out.println("Hello Whoever you are.");

A finally kulcsszó public class HelloThere { public static void main(string[] args) { try { System.out.println("Hello " + args[0]); catch (ArrayIndexOutOfBoundsException e) { System.out.println("Hello Whoever you are."); finally { System.out.println("How are you?");