Unit 2 - Using Objects
Object Oriented Programming
- Programming paradigm around objects s
- Compartmentalize data and function in such a way that data and the functions that operate on the data are bound together ## Classes
- Classes are a template
- Objects in the same class will share common methods and attributes
- Fruit example ## Creating an Object
- Members methods constructors
- Initialized by calling the class constructor
- Access modifier
- Return type
- Method name
- Parameter list
- Exception list
- Method body
Painter mypainter = new Painter();
Example of declaring Methods
public int max (int x, int y){
if(x>y)
return x;
else
return y;
}
Integer a = 2;
Double b = 3.7;
Boolean c = true;
System.out.println(a);
System.out.println(b);
System.out.println(c);
Concatenation
String concatenation forms a new String that is the combination of multiple strings. There are two ways to concatenate strings in Java:
- By + (String concatenation) operator
- By concat() method
The operator "+" normally acts as an arithmetic operator unless one of its operands is a String. If so, it converts the other operand to a String before joining the second operand to the end of the first operand.
Difference between the two methods:
concat() can only concatenation String objects, whereas "+" silently converts non-Strings to Strings
concat() can only combine two strings, whereas "+" can combine any amount of strings.
String s = "Nicholas" + "Ramos";
System.out.println(s);
String x = 2 + 2 + "Nicholas" + "Ramos" + 2 + 3;
System.out.println(x);
String s = "Nicholas ";
String b = "Ramos";
System.out.println(s.concat(b));
System.out.println(Math.random());
System.out.println(Math.floor(4.5));
System.out.println(Math.abs(-3));
System.out.println(Math.pow(7, 2));
System.out.println(Math.pow(36, .5));
System.out.println(Math.sqrt(36));
public class Goblin {
private String name;
private int HP;
private int DMG;
private double hitChance;
private double criticalHitChance;
public String getName() {
return name;
}
public int getHP() {
return HP;
}
public int getDMG() {
return DMG;
}
public double getHitChance() {
return hitChance;
}
public double getCriticalHitChance(){
return criticalHitChance;
}
public boolean isAlive() {
if (this.HP > 0) {
return true;
} else {
return false;
}
}
public void setName(String newName) {
this.name = newName;
}
public void setHP(int newHP) {
this.HP = newHP;
}
public void takeDMG(int takenDamage) {
this.HP -= takenDamage;
}
public void setDMG(int newDMG) {
this.DMG = newDMG;
}
public void setHitChance(double newHitChance) {
this.hitChance = newHitChance;
}
public void setCriticalHitChance(double newCriticalHitChance) {
this.criticalHitChance = newCriticalHitChance;
}
}
import java.lang.Math;
public class Duel {
public static void attack(Goblin attackerGoblin, Goblin attackeeGoblin) {
System.out.println(attackerGoblin.getName() + " attacks " + attackeeGoblin.getName() + "!");
if (Math.random() < attackerGoblin.getHitChance()) {
if (Math.random() < attackerGoblin.getCriticalHitChance()){
attackeeGoblin.takeDMG(2*attackerGoblin.getDMG());
System.out.println(attackerGoblin.getName() + " lands a critical hit!");
System.out.println(attackeeGoblin.getName() + " takes " + 2*attackerGoblin.getDMG() + " damage");
}
else{
attackeeGoblin.takeDMG(attackerGoblin.getDMG());
System.out.println(attackerGoblin.getName() + " hits!");
System.out.println(attackeeGoblin.getName() + " takes " + attackerGoblin.getDMG() + " damage");
}
} else {
System.out.println(attackerGoblin.getName() + " misses...");
}
System.out.println(attackeeGoblin.getName() + " HP: " + attackeeGoblin.getHP());
System.out.println();
}
public static void fight(Goblin goblin1, Goblin goblin2) {
while (goblin1.isAlive() && goblin2.isAlive()) {
attack(goblin1, goblin2);
if (!goblin1.isAlive()) {
System.out.println(goblin1.getName() + " has perished");
break;
}
attack(goblin2, goblin1);
if (!goblin2.isAlive()) {
System.out.println(goblin2.getName() + " has perished");
break;
}
}
}
public static void main(String[] args) {
Goblin goblin1 = new Goblin();
goblin1.setName("jeffrey");
goblin1.setHP(12);
goblin1.setDMG(2);
goblin1.setHitChance(0.50);
goblin1.setCriticalHitChance(0.1);
Goblin goblin2 = new Goblin();
goblin2.setName("Gunther the great");
goblin2.setHP(4);
goblin2.setDMG(1);
goblin2.setHitChance(1);
goblin1.setCriticalHitChance(0.5);
fight(goblin1, goblin2);
}
}
Duel.main(null);