Skip to content
Snippets Groups Projects
Commit 7581ff13 authored by Keiko Katsuragawa's avatar Keiko Katsuragawa
Browse files

add 2-1-JavaBasic examples

parent 238e6753
No related branches found
No related tags found
No related merge requests found
// Simple class hierarchy
// Demonstrates abstract classes, containment
public class Animals1 {
// inner classes
// base class
abstract class Animal {
abstract String talk();
}
// derived classes
class Cat extends Animal {
String talk() { return "Meow!"; }
}
class Dog extends Animal {
String talk() { return "Woof!"; }
}
// container class methods
Animals1() {
speak(new Cat());
speak(new Dog());
}
void speak(Animal a) {
System.out.println( a.talk() );
}
// static main methods -- entry point
public static void main(String[] args) {
Animals1 a = new Animals1();
}
}
// Simple class hierarchy
// Contrasts interface and abstract class implementations
public class Animals2 {
// interface
interface Pet {
String talk();
}
// inner classes
class Cat implements Pet {
public String talk() { return "Meow!"; }
}
class Dog implements Pet {
public String talk() { return "Woof!"; }
}
// container class methods
Animals2() {
speak(new Cat());
speak(new Dog());
}
void speak(Pet a) {
System.out.println( a.talk() );
}
// static main methods -- entry point
public static void main(String[] args) {
Animals2 a = new Animals2();
}
}
class Bicycle {
String owner = null;
int speed = 0;
int gear = 1;
// constructor
Bicycle() { }
Bicycle(String name) { owner = name; }
// methods
void changeSpeed(int newValue) { speed = newValue; }
void changeGear(int newValue) { gear = newValue; }
int getSpeed() { return speed; }
int getGear() { return gear; }
// static entry point - main method
public static void main(String[] args) {
Bicycle adultBike = new Bicycle("Jeff");
adultBike.changeSpeed(20);
System.out.println("speed=" + adultBike.getSpeed());
Bicycle kidsBike = new Bicycle("Austin");
kidsBike.changeSpeed(15);
System.out.println("speed=" + kidsBike.getSpeed());
}
}
// Simple class hierarchy
// Demonstrates abstract classes and containment.
// Bike container class
class Bikes1 {
// base class
abstract class Bike {
int wheels = 0;
int speed = 0;
void setWheels(int val) { wheels = val; }
void setSpeed(int val) { speed = val; }
void show() {
System.out.println("wheels = " + wheels);
}
}
// derived two-wheel bike
class Bicycle extends Bike {
Bicycle() {
setWheels(2);
}
}
// derived two-wheel bike
class Tricycle extends Bike {
Tricycle() {
setWheels(3);
}
}
// container class
Bikes1() {
Bicycle b = new Bicycle();
b.show();
Tricycle t = new Tricycle();
t.show();
}
// entry point
public static void main(String[] args) {
Bikes1 b = new Bikes1();
}
}
\ No newline at end of file
// Simple class hierarchy + interface
// Demonstrates abstract classes, containment, interfaces.
// Bike container class
class Bikes2 {
// base class
abstract class Bike {
int wheels = 0;
int speed = 0;
void setWheels(int val) { wheels = val; }
void setSpeed(int val) { speed = val; }
void show() {
System.out.println("wheels = " + wheels);
System.out.println("speed = " + speed);
}
}
// interface for ANYTHING driveable
// could be applied to car, scooter etc.
interface Driveable {
void accelerate();
void brake();
}
// derived two-wheel bike
class Bicycle extends Bike implements Driveable {
Bicycle() { setWheels(2); }
// interface methods
// need to make public to match access level for interface (above)
public void accelerate() { setSpeed(speed += 5); }
public void brake() { setSpeed(speed -= 5); }
}
// derived two-wheel bike
class Tricycle extends Bike implements Driveable {
Tricycle() { setWheels(3); }
// interface methods
// need to make public to match access level for interface (above)
public void accelerate() { setSpeed(speed += 1); }
public void brake() { setSpeed(speed -= 1); }
}
// container class
Bikes2() {
Bicycle b = new Bicycle();
b.accelerate();
b.show();
Tricycle t = new Tricycle();
t.accelerate();
t.show();
}
// entry point
public static void main(String[] args) {
Bikes2 b = new Bikes2();
}
}
\ No newline at end of file
import javax.swing.*;
import java.awt.Font;
public class Hello extends JFrame {
public static void main(String args[]) {
new Hello();
}
Hello() {
JLabel l = new JLabel("Hello Java");
l.setFont(new Font("Serif", Font.PLAIN, 24));
add(l);
setSize(200, 100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
\ No newline at end of file
# super simple makefile
# call it using 'make NAME=name_of_code_file_without_extension'
# (assumes a .java extension)
NAME = "Hello"
all:
@echo "Compiling..."
javac $(NAME).java
run: all
@echo "Running..."
java $(NAME)
clean:
rm -rf $(NAME).class
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment