Download presentation
Presentation is loading. Please wait.
Published byJulius Glazier Modified over 10 years ago
1
13 X 11 Java Lecture 1 CS 1311 Introduction 13 X 11
2
Serious Stuff
3
13 X 11 Put these in order Avoid damage to equipment and material Get the job done Avoid injuries Maintain good community relations
4
13 X 11 Normal World Avoid injuries Avoid damage to equipment and material Get the job done Maintain good community relations
5
13 X 11 Military@War Get the job done Avoid injuries Avoid damage to equipment and material Maintain good community relations
6
13 X 11 Ballistics ? v0v0
7
13 X 11 Ballistics v0v0
8
13 X 11 Ballistics vxvx vyvy v0v0
9
13 X 11 Ballistics vxvx vyvy v0v0 t
10
13 X 11 Ballistics vxvx vyvy v0v0 t t
11
13 X 11 Ballistics vxvx vyvy v0v0 t t
12
13 X 11 Ballistics vxvx vyvy v0v0 t t Assumptions Flat non-rotating earth Vacuum Constant gravity
13
13 X 11 Ballistics Calculations Required rooms full of mathematicians Very slow, tedious work Anything that would help could help to win the war Money no object Commercialization not considered Software Engineering?
14
13 X 11 Let's invent a computer
15
13 X 11 Computer Programming Initially by hand Big breakthrough: Machine translation Analysis of computation Church-Turing Functional Imperative/Procedural
16
13 X 11 Paradigm Review Functional Programming –Mathematical base –Provably correct –Disassociated from machine model Imperative/Procedural Programming –Machine oriented –Mathematical ties Object Oriented Programming –Some features of both –Result of industry maturation & growth
17
13 X 11 Origins of OO USAF ATC Randolph AFB B220 Locations Routines Data
18
13 X 11 Origins of OO USAF ATC Randolph AFB B220 Simulation Machines Workers Products Conveyor
19
13 X 11 Origins of OO USAF ATC Randolph AFB B220 Simulation Large scale projects
20
13 X 11 Origins of OO USAF ATC Randolph AFB B220 Simulation Large scale projects GUI's
21
13 X 11 So what is it? A brief overview My favorite example Queue
22
13 X 11 Chez Guillaume Application to maintain 2 queues Allow adding to either list Allow removing from either list
23
13 X 11 How might it be done? Enqueue Module Dequeue Module isEmpty Module head.tail Restaurant Module head.tail Input Module Output Module Menu Module Data Structure
24
13 X 11 How might it be done? Enqueue Module Dequeue Module isEmpty Module head.tail Restaurant Module head.tail Input Module Output Module Menu Module Data Structure Where is the queue?
25
The OO Approach Restaurant Object Input Module Output Module Menu Module Data Objects Queue Object Enqueue Module Dequeue Module isEmpty Module head.tail Queue Object head.tail Enqueue Module Dequeue Module isEmpty Module Data Object Get Data Module Set Data Module Cust Data Ref
26
13 X 11 The OO Approach Why do we want a new language? Why do we want to arrange things in such a fashion? What are the goals?
27
13 X 11 Goals Encapsulation Reusability Adaptability/Flexibility Decentralization/Distribution
28
13 X 11 OOP Terminology Abstract Data Type Class Object Method Fields/Attributes References
29
13 X 11 Characteristics of OOP Language Everything is an object A program is a bunch of objects telling each other what to do by sending each other messages Each object has its own memory made up of other objects Every object has a type which in OO terms means that every object is an instance of some class All objects of a particular type can receive the same messages. An object of type circle will also be an object of type shape thus...
30
13 X 11 Java Toasters Smart cards Killer apps The wwweb
31
13 X 11 Java, the good news Real Very powerful In demand Software engineering Universal
32
13 X 11 Java, the bad news Real Very powerful Not an educational language Jack of all trades/Master of none Slow
33
13 X 11 Clever Java Stuff Java program can be run by web browser Borrowed a lot of syntax from c and c++ Give it away WORA Security
34
13 X 11 Translation Compilation –Fortran –Cobol –Pascal –Algol –C/C++ Interpretation –Basic –Lisp –Scheme
35
13 X 11 Emulation How to sell a new computer to someone with lots of software? Emulate the old hardware! Old Software New Computer Program Emulating Old Computer
36
13 X 11 The Java Approach Compilation into ByteCode Java Source Byte Code Javac Compiler
37
13 X 11 The Java Approach Interpretation by the Java Virtual Machine Any Computer Java Virtual Machine Byte Code
38
13 X 11 Why is this cool?
39
13 X 11 The Internet ©Al Gore Java Source Byte Code Javac Compiler Do this once Web Server Your Computer Your Favorite Browser Java Virtual Machine
40
13 X 11 “Source Code” [.java] Java compiler Generic “Byte Code” [.class] OS-specific JVM interpreter Execute program Compilation/Execution Need one of these for every different OS
41
13 X 11 Sample Application public class HelloWorld { public static void main(String argv[]) { System.out.println(“Hello World!”); } We create a file (using an editor) called “HelloWorld.java” We compile by typing (at the OS prompt): javac HelloWorld.java Which produces HelloWorld.class Then we execute by typing: java HelloWorld Hello World!
42
13 X 11 Demo >javac HelloWorld.java >java HelloWorld Hello World! >
43
13 X 11 Quick Trix The name of the file must match the name of the class EXACTLY!!! File: Bubba.java Contains: Everything must be EXACTLY correct!!! class Bubba {... Capitalization counts
44
13 X 11 A Final Word static static is a source of great confusion and sometimes even frustration Here's the basic idea (don't worry if this is confusing we'll explain it again and again
45
13 X 11 Java Structure Java programs consist entirely of files containing classes Classes are like blueprints or templates They describe the structure and operation of objects. Objects are like whatever is made from a blueprints or template. Objects are considered to be dynamic Sometimes there is a need for something to not be dynamic hence you may declare it static.
46
13 X 11 Questions?
47
13 X 11
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.