OOP - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

OOP

Description:

Exceptions make the error handling more logical and regular by allowing you to ... AWT Abstract Windowing Toolkit (Enklare GUI) ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 22
Provided by: LARS135
Category:
Tags: oop | windowing

less

Transcript and Presenter's Notes

Title: OOP


1
OOPM del III Föreläsning vecka 11
  • mer I/O
  • serialization
  • GUI intro

2
OOP Exception Handling
  • Exception Model
  • Exceptions make the error handling more logical
    and regular by allowing you to group all the
    exception handling code in only one place instead
    of worrying about all the things that could go
    wrong at each line of the code

Throws Exception
Throws Exception
Throws Exception
Throws Exception
Method A
Method B
Method C
Method D
EXCEPTION
main()
ERROR
direction of propagation
exception handling code
3
OOP Exception Handling
  • Exception Model
  • Example
  • try
  • // normally this code runs without problems,
  • // but sometimes may raise exceptions or exit
  • // the block via a break, continue, or return
  • catch (ExceptionType1 e1)
  • // handle an exception object e1 of type
  • // ExceptionType1 or of a subclass of that type
  • catch (ExceptionType2 e2)
  • // handle an exception object e1 of type
  • // ExceptionType2 or of a subclass of that type
  • finally
  • // always execute this code, after leaving the
    try clause
  • // 1) normally, after reaching the bottom of
    the block
  • // 2) with an exception handled by a catch
  • // 3) with an exception that is not handled
  • // 4) because of a break, continue or return
    statement

4
OOP Java an Files
Java provides a predefined class for modeling
disk files, called File
the constructor for File accepts the files name
(a String reference) as its argument
new File (filename)
An example of this would be
File f1, f2 f1 new File(Bjorn.txt) f2 new
File(Lisa.txt)
5
OOP Java and Files
DO NOT FORGET THAT The creation of the instances
f1 and f2 doesnt mean that the files exist!!
If the files exist the class provides us two
methods for directly operate with the files
6
OOP Java streams into files
Java program
bytes of data
ewsc24rfds53Hej20Hur20m76ar20du20?rsf
7
OOP Java streams into files
summary how to create or overwrite a file in a
line
  • Create a File object to represent the file and
    then use it to
  • Create a FileWriter object to represent the
    output pathway to the file and use it to
  • Create a PrintWriter object to provide a
    convenient output pathway to the file
  • Use the print or println methods of PrintWriter
    as needed to write content to the file

PrintWriter target new PrintWriter( new
FileWriter( new File(data.out)))
8
OOP input an overview
Input source
Java program
bytes of data
ewsc24rfds53Hej20Hur20m76ar20du20?rsf
We must build a bridge between the Java Program
and the input source!!
9
OOP keyboard
Java provides a predefined object to represent
the stream of input that comes from the keyboard
System.in.
keyboard
System.in
isr


existing InputStream
keyb


new InputStreamReader

new BufferedReader
BufferedReader keyb new BufferedReader( new
InputStreamReader(System.in))
10
OOP INPUT from files
Obtaining input from disk files is only a little
bit more complicated than from the keyboard. Our
starting point must be to find some sort of
InputStream object. As we said before, both
BufferedReader and FileReader belong to that class
fr
files

br


new FileReader

new BufferedReader
BufferedReader br new BufferedReader( new
FileReader("c/testio.txt"))
11
Serialisering(Serialization)
  • Även objekt kan sparas till filer eller skickas
    över nätverk.
  • För att göra detta måste objektet implementera
    gränssnittet Serializable från biblioteket
    java.io.
  • Gränssnittet Serializable har inga metoder som
    skall implementeras
  • Så här kan det se ut
  • import java.io.
  • public class myClass implements Serializable
  • /metodkropp/

12
Serialisering(Serialization)
  • Hur man serialiserar ett objekt av typen MyClass
    sparar till fil och läser tillbaka.
  • File f new File("c/objects")
  • MyClass myObject new MyClass()
  • ObjectOutputStream oosnew ObjectOutputStream(
  • new FileOutputStream(f))
  • oos.writeObject(myObject)
  • oos.close()
  • //Hämta tillbaka och typomvandla
  • MyClass myOtherObject
  • ObjectInputStream oisnew ObjectInputStream(
  • new FileInputStream(f))
  • myOtherObject (MyClass)ois.readObject()
  • ois.close()

13
Serialisering(Serialization)
  • Man kan med metoderna writeObject() och
    readObject() skriva resp läsa object.
  • Man kan skriva flera object till en fil (även med
    olika typ.
  • När man läser tillbaka måste man typomvandla
    (casting), dvs man måste veta vilka object som
    skrevs i vilken ordning.
  • När man läser tillbaka måste man ha tillgång till
    de klasser som representerar objekten

14
Instanceof
  • Med instanceof kan man ta reda på vilken klass
    ett object tillhör.
  • Används till exempel för att räkna object av
    olika typ i en samling
  • Syntax
  • if(myObject instanceof ClassName) /Kod som
    utförs om myObject tillhör klassen ClassName/

15
GUI
16
GUI
  • Två API-er/bibliotek för Graphical User Interface
  • (APIApplication Program Interface)
  • AWT Abstract Windowing Toolkit (Enklare GUI)
  • Swing (Avancerat GUI) Uppbyggt på samma sätt som
    AWT. Kan ibland ge problem när man använder det i
    webbrowsers.

17
GUI
  • Består av
  • Containers Behållare tex JFrame, JApplet,
    JWindow,
  • LayoutManagers Bestämmer hur layouten byggs upp
    tex GridLayout, BorderLayout.
  • Kontrollkomponenter tex JButton, JCheckBox,
    JOptionPane
  • Händelselyssnare och Händelsehanterare Kopplas
    till de olika kontrollkomponenter för att ge
    önskat resultat.

18
GUI-Struktur
  • Vi låter två filer bära strukturen för
    GUI-Applicationen
  • Funktionaliteten placeras i klassen Application
  • Användargränsittet placeras i klassen GUI
  • dessutom har vi en tredje fil där vår mainmetod
    placeras och som startar applikationen.
  • Förutom ovanstående filer kan det finnas ett
    flertal andra klasser som bygger upp
    applikationen och användargränssnittet

19
GUI Containers ett urval
  • JFrame grundbehållare för en applikation. Ett
    fönster med ram och titel. Kan ha en menyrad.
    Huvudkomponent i applikation deklareras JFrame
    myFrameskapas myFrame new JFrame()
  • JPanel en osynlig behållare. Används som del i
    JFrame för att visa bilder eller placera ut
    knappar. deklareras JPanel myPanelskapas
    myPanel new JPanel()

20
GUI LayoutManagers ett urval
  • BorderLayout innehåller 5 områden( NORTH, SOUTH,
    WEST, EAST, CENTER) Bra grundlayout
  • GridLayout (ett rutnät av rader och kolumner)
  • Flowlayout (Kontrollkomponenterna läggs till
    efterhand bra för knappar)
  • Layouter kan appliceras på Containers/Behållare
    som JFrame, JPanel mfl

21
?
Write a Comment
User Comments (0)
About PowerShow.com