1. Definiera klassvariabel. 2. Instansvariabel för klass. Selektera klass i Browsern och tryck på statics. Definiera protokollnamn, Protocol->Add...

Relevanta dokument
Kort om klasser och objekt En introduktion till GUI-programmering i Java

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Lite modifierad Laboration 1 Körkortsprov för Smalltalk och VisualWorks

Objektorientering: Lagring och livstid

Laboration 2: Designmönster

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Objektorienterad programmering Föreläsning 6. Mer om klasser och typer Namnrymder Inkapsling Synlighet Statiska variabler Statiska metoder

Laboration 2: Designmönster

Objektorientering: Lagring, räckvidd och livstid

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

DAT043 - Föreläsning 7

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Gissa ordet, tutorial

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Lösningsförslag övning 2.

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Lab5 för prgmedcl04 Grafik

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Agenda. Objektorienterad programmering Föreläsning 13

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Visa stora ikoner utan text i Command Manager = Större arbetsyta

Windows Forms Winstrand Development

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

surell consulting ab

Malmö högskola 2007/2008 Teknik och samhälle

OOMPA 2001 Laboration 5 VisualWorks

Laboration 1 Introduktion till Visual Basic 6.0

Komponenter med COM (och COM+/VC++ 7.0)

Enkla variabler kontra referensvariabel

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Grafiska användargränssnitt i Java

Grundläggande programmering med C# 7,5 högskolepoäng

Objektorienterad programmering

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Installationsanvisning för Su Officemallar 2007 För PC

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Laboration 3, uppgift En klass för en räknare

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Objektorienterad Programmering DAT043

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har

Övning: Arbeta med Azure Explorer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

[ HUR DU UPPDATERAR FÖRSTASIDAN PÅ OTHELLO.NU ]

WWAAC Layout Editor. 1. Standard för knapp (kolla att fliken Standard för knapp är vald)

Installationsanvisning för Su Officemallar 2013 För PC

Arv och polymorfism i Java

WinStudio - Uppstart. Drifttagning av operato rspanel med IndraWorks och WinStudio. IndraWorks 14. Version

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Mer om klasser och objekt

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

JAVA Mer om klasser och objektorientering

Lathund Projektledare Jönköpingsprojektplats

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Guide till RefWorks Skapa ett RefWorks-konto Under Citera och referera > RefWorks Hjälp funktioner i RefWorks Help Tutorial Help

BridgeView. Klasser i BridgeView. Klassen Grafiska Gränssnittet. Klassen TSPELET

PROGRAMMERINGSTEKNIK TIN212

Guide för pdf-formulär

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Laboration 1 - Grunderna för OOP i Java

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass

Övning: Skapa en ny regel

Manual

Laboration 3 GUI-programmering

Öppna EndNote varje gång när du vill samla referenser till ditt bibliotek.

1 Grafiska komponenter

Simulering med ModelSim En kort introduktion

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Övning 1: Skapa virtuell maskin för utveckling.

TDDD78 Objektorientering: Lagring och livstid

BILAGA 5 Fi2Utrymmen Bilaga till CAD-kravspecifikation med förvaltningsinformation Version 1.0

Grafiska användargränssnitt i Java

3.5 Visuell programmering

Programmering för språkteknologer II, HT2011. Rum

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

EndNote X8. Bygg ditt eget referensbibliotek. - där du samlar referenser från olika databaser på ett och samma ställe

Imperativ programmering. Föreläsning 4

INSTÄLLNINGAR FÖR IRONCADS 2D-RITNING

Arv innebär att man skapar en ny klass (subklass) utifrån en redan existerande klass (superklass, basklass).

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Ett enkelt Androidspel, tutorial

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

Tentamen Grundläggande programmering

Classes och Interfaces, Objects och References, Initialization

Stationsregistret - användarhandledning

Steg för Steg Att använda Statistics explorer med data från SKLs databas

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Laboration 1: Figurer i hierarki

TUTORIAL: SAMLING & KONSOLL

Transkript:

Kort beskrivning av klassvariabler, något om instansvariabler för klasser samt en introduktion till gränssnittsbyggande med hjälp av gränssnittsbyggare i VisualWorks 5i 1. Definiera klassvariabel Selektera klass i Browsern och tryck på statics. Definiera protokollnamn, Protocol->Add... Editera mallen som visas i textfönstret, dvs skriv något i stil med: Omgivning.Klassnamn definestatic: #KlassvariabelNamn private: false constant: false category: 'kategori' initializer: 'INITIALTVÄRDE' Exempel Tex skulle vi kunna konstruera en klassvariabel PintsPerGallon i "vår gamla" SIConverter OOMPA.Lab2.A.SIConverter definestatic: #PintsPerGallon private: false constant: false category: 'constants' initializer: '8' Då detta värde knappast kommer förändras kan vi alternativt deklarera den som konstant. OOMPA.Lab2.A.SIConverter definestatic: #PintsPerGallon private: false constant: true category: 'constants' initializer: '8' Initiera klassvariabeln via pop-up-menyalternativet Initialize static. Sen skriver vi om metoden OOMPA.Lab2.A.SIConverter>>pint, dvs vi definierar om den enligt följande: pint ^self gallon / PintsPerGallon 2. Instansvariabel för klass En annan möjlighet är att definiera klassinstansvariabel. Då skulle man ju kunna deklarera en variabel gallon som klassinstansvariabel i SIConverter, se till att initiera den på lämpligt 1 (11)

sätt i respektive subklass samt flytta upp metoden gallon till SIConverter, låta den returnera klassinstansvariabeln och (förstås) stryka metoden från subklasserna. Fast detta är överkurs, så jag går inte närmare in på detta här. 3. Skapa GUI En minimal beskrivning med ett minimalt exempel på hur ett grafiskt gränssnitt kan skapas med hjälp av VisualWorks gränssnittsbyggare. För utförligare beskrivning av alla steg, olika komponenter osv så hänvisar jag till VisualWorks medföljande dokumenatation. Öppna parcelbrowser Tryck på alternativet för parcelbrowser i Launchern. Då kommer en browser som ser ut så här öppnas: 2 (11)

Tryck på knappalternativet Parcels så kommer listan längst till vänster ändras från att visa namnrymder till att visa paket. Ladda in paketet för gränssnittsbyggaren När vi tryckt på Parcels-knappen kommer också menyalternativet Namespace bytas mot Parcels i menylisten. För att ladda in ett nytt paket används menyalternativet Load... Då visas en dialog från vilken vi kan välja att ladda in paket: Välj paketet för UIPainter, som innehåller gränssnittsbyggaren. Under inladdningen kommer en varnande dialogbox visas. Tryck på knappen yes to all så kommer paketet laddas in. 3 (11)

När det hela är inladdat så kommer alternativet UIPainter visas i listan över inladdade paket: Använd gränssnittsbyggaren Nu kan vi öppna gränssnittsbyggaren genom att trycka på ikonen för staffliet som lagts till Launchern i samband med att vi läste in paketet. Alternativt kan vi öppna det hela via Toolsmenyn. 4 (11)

Vi väljer en komponent ur paletten och placerar den på duken (canvasen), i det följande fallet har vi valt ett inmatningsfält: 5 (11)

Efter att vi också valt och placerat en label, ett textfält och en knapp så har vi ritat upp följande gränssnitt: Nästa steg är att definiera en klass med metod som innehåller gränssnittbeskrivningen. Detta görs genom att först trycka på knappen Install... i Canvas Tool. Detta ger följande dialog, i vilken vi första gången trycker på knappen längst upp till höger för att antingen välja eller (som i vårt fall) skapa ny klass: 6 (11)

I dialogen som följer väljer vi lämplig namnrymd och trycker på fliken Create. För enkelhets skull har jag valt Smalltalk som namnrymd (då jag i aktuell image inte har skapat några egna namnrymder). 7 (11)

Ge klassnamn och kategori för var du vill placera klassen. Tryck sedan på OK-knappen. Vi kan, om vi vill, också välja superklass men ApplicationModel är den normala för gränssnitt konstruerade med gränssnittsbyggaren. Därefter kommer vi tillbaks till föregående dialog. Tryck på OK-knappen där också. Nu skall en klass med angivet namn ha skapats (här EnkeltGUI). Om man vill se på koden kan man använda vanlig browser eller trycka på knappen Browse... i Canvas Tool. Nästa steg är att namnge komponenter respektive binda dem till metoder i den genererade klassen. Detta görs enklast via menyalternativet Properties i Canvas Tool. 8 (11)

Överst i bilden nedan illustreras hur inmatningsfältet ges namnet field och underst hur knappen får namnet Flytta och binds till metoden moveit (dvs den metod som ska anropas om vi trycker på den). 9 (11)

Efter det att jag på samma sätt ändrat labeln till Ge text: och givit texfältet namnet output så kan jag automatiskt generera kod för dessa komponenter genom att använda menyalternativet Define... i Canvas Tool. Tryck OK i Define-dialogen och sedan Cancel i den efterföljande dialogen (som mer har med att göra hur systemet skall göra då man levererar en slutgiltig applikation). Nu skall det ha genererats två instansvariabler output och field samt följande instansmetoder output, field och moveit. Tryck sedan på Install... igen för att definiera var gränssnittsbeskrivningen skall hamna. Använd defaultvärdet genom att direkt trycka på OK. Pröva gränssnittet genom att antingen trycka på knappen Open eller skicka meddelandet open till klassen som vi skapade. Pröva tex att skriva om metoden moveit på följande sätt: moveit self output value: self output value, self field value, (String with: Character cr) 10 (11)

Om du i ett senare läge vill editera gränssnittet kan man göra på flera olika sätt. Dom två vanligaste är troligen: Skriv UIPainter new openonclass: EnkeltGUI andselector: #windowspec som också finns som kommentar i metoden EnkeltGUI class>>windowspec (så att man enkelt kan göra Do it) Öppna via Browser och menyalternativet Edit resource då man markerat metoden som innehåller gränssnittsbeskrivningen man vill editera, dvs i det här fallet klassmetoden windowspec. Resten och mer finesser får ni lära er genom pröva, gissa, läsa manualer, testa exempel, titta i systemet osv. 11 (11)