Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Introduction to Java and Object-Oriented Programming AJSS Computer Camp Department of Information Systems and Computer Science Ateneo de Manila University Outline Morning Session Introduction to Java, OOP, and the BlueJ environment Creating classes for the Robots project Afternoon Session Graphics and Graphical User Interfaces in Java Demo: BombsAway application Creating your own game using the a game engine Demo: developing mobile apps within the Android platform Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1: Intro Java Slide 2 The Java Programming Language Java: an object-oriented programming language that is simple safe platform independent designed for the internet Many universities use Java as the introductory programming language for beginning programmers Ateneo adopted Java for CS 21a in 1997 Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1: Intro Java Slide 3 Two types of Java programs: Applications general-purpose programs standalone executed through the operating system Applets programs meant for the WWW embedded in a Web page normally executed through a browser Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1: Intro Java Slide 4 Simple Java Application File: Hello.java // Hello World application public class Hello { public static void main( String args[] ) { System.out.println( “Hello world” ); } } Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1: Intro Java Slide 5 The Programming Process Compile Errors? Create/Edit Program Source Program Compile Program Run-Time Errors? Object Program Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. Execute Program L1: Intro Java Slide 6 Creation, Compilation, and Execution Create Java program C:\> edit Hello.java Hello.java file is created Compile using javac (compiler) C:\> javac Hello.java Hello.class file is produced Execute using java (interpreter) C:\>java Hello requires a Hello.class file Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1: Intro Java Slide 7 Simple Java Applet File: HelloAgain.java import javax.swing.*; import java.awt.*; public class HelloAgain extends JApplet { public void paint( Graphics g ) { g.drawString( “Hello”, 50, 50 ); } } Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1: Intro Java Slide 8 Executing Applets After compiling the java program: Embed an “applet tag” in an .html document that references the .class file Open the .html document using a browser or the appletviewer Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1: Intro Java Slide 9 Sample .html Document File: HA.html <h1> My Sample Applet </h1> <applet code="HelloAgain.class" height=200 width=100> </applet> Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1: Intro Java Slide 10 Java Program Structure Java Program (optional) import declarations class declaration Class class name should match its file name may extend an existing class (such as JApplet) contains method/function declarations Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1: Intro Java Slide 11 Object-Oriented Programming The traditional definition of a program is: a sequence of instructions to be executed on a computer In the Object-Oriented Programming (OOP) paradigm, a program that executes is a collection of interacting objects In this paradigm, the programs we specify what are in these objects and how these objects behave Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 12 So … What is an Object? A “thing” that has type, identity, state, and behavior type: belongs to a “class” of similar objects identity: is a distinct “instance” of a class of objects state / attributes: has a set of properties (aka fields) each field can have different values behavior: has “methods” (things that the object knows how to do) we say we “call” a method on the object Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 13 Examples of Objects on (true or false) behavior LightBulb state/attributes switch on switch off check if on state/attributes behavior Car state/attributes behavior BankAccount balance deposit withdraw check balance # of liters of gas in tank total # of km run so far efficiency (km/liter) drive load gas change efficiency check gas check odometer reading Note each object is an “instance” of that “type” of object each instance has its own values for its attributes e.g., different accounts can have different balances Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 14 BankAccount example (A Preview) state/attributes behavior BankAccount balance public class BankAccount { private double balance = 0; get balance deposit withdraw public double getBalance() { return balance; } public void deposit( double amount ) { balance = balance + amount; } … BankAccount double balance double getBalance() void deposit( double amount ) … and more BankAccount.java } Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 15 Class Definition in Java BankAccount public class BankAccount { private double balance = 0; type (or class) state/attributes (fields) behavior (methods) may have input parameters in parenthesis may have output (or “return”) type has “body” with code BankAccount.java public double getBalance() { return balance; } public void deposit( double amount ) { balance = balance + amount; } … } “double” means a floating Point number like1234.25 Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 16 A Class with a Constructor Constructor: special method that handles initialization For now, view constructors as an alternative to initializing fields as they are declared Later: more advanced uses for constructors public class BankAccount { private double balance; BankAccount.java public BankAccount() { balance = 0; } public double getBalance() { return balance; } public void deposit( double amount ) { balance = balance + amount; } … } Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 17 A Class and Its Instances A single class can have multiple instances Each instance is a separate object Each instance can have different values for its fields The definition of methods is the same for all instances of the same type Thus, there is only one class definition Written as the .java file for that class Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 18 Lab Exercise: Try it in BlueJ Open the project (ObjectExamples) that contains a BankAccount class (BankAccount.java) Create BankAccount objects (instances of the class) Right-click on the class Carry out operations on the BankAccount objects (invoke the deposit and getBalance methods) Right-click on the instances Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 19 Lab Exercise, continued Instantiate and use a BankAccount object within in a Java application How? Create a UseObjects class (UseObjects.java) “New Class” on left pane of BlueJ environment Inside the UseObjects class type the following code… Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 20 Lab Exercise, continued public static void main( String args[] ) { BankAccount b = new BankAccount(); b.deposit( 1000.00 ); b.withdraw( 100.00 ); System.out.println( b.getBalance() ); b.deposit( 2000.00 ); System.out.println( b.getBalance() ); } Compile and execute UseObjects.java The values 900.0 and 2900.0 should be printed out Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 21 Lab Exercise, continued Close the current BlueJ project Create a Robots project Create a Robot class moving along a two dimensional maze Attributes: x and y coordinates (int type) Methods: moveLeft, moveRight, moveUp, moveDown Test the class by creating instances within BlueJ Test the class by creating another class that uses the Robot class—call it RobotTest Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1: Intro Java Slide 22 Summary In Java, we write programs for objects These programs are called classes A class consists of fields and methods to specify the state and behavior for its objects Once a class has been defined, objects of that class can be created (instantiated) Methods are invoked on an object, and may cause the state of the object to change Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved L3: Intro to OOP Slide 23