CSCE 146 Hey Remember Java? Written by: Dr. JJ Shepherd Objectives • • • • • • • • Review the basics of Java Variables Branch Statements Loops Arrays Classes Inheritance Exceptions Website • www.cse.sc.edu/~shephejj/csce146/ • Still under construction but will be up soon! 145 Was Sure Neat • Hey you passed! – That’s pretty rad • Let’s review! Variables • • • • Used to store information Has a defined size Two Types of Variables Primitive Types – int, double, char • Class Types – String, PrintWriter, Exception Variables • Defining Variables • Tells the computer to allocate storage in memory given a name • Concept <<type>> <<name>>; • Example int tacosConsumed; String tacoConvo; Variables • Initializing and Assigning Variables • Sets variable to a defined value • Concept <<name>> = <<value>>; • Example tacosConsumed = 20; tacoConvo = “I ate “ + tacosConsumed + ” tacos. I feel sick now”; Branch Statements • Used for decision making problems • If statement concept if(<<boolean expression>>) { <<body statements>> } Branch Statements • Else statements are the catch all of if statements • Only exist if there is a prior if statement • Else Concept if(<<boolean expression>>) { <<if body>> } else { <<else body>> } Branch Statements • Else if’s are short handed if statements in else statements • Else if concept else if(<<boolean expression>>) { <<else if body>> } else { if(<<boolean expression>>) { <<else if body>> } } Branch Statements • Switch statements are specialized branch statements that has cases which can be integers, characters, or Strings • Switch concept switch(<<variable>>) { case <<value>>: <<case body>> break; case <<value>>: <<case body>> break; … default: <<default body>> break; } Loops • Loops repeat code until a boolean condition is no longer true • While Loop Concept while(<<boolean expression>>) { <<loop body>> } Loops • For loops are used to loop the body a set amount of times • For loop concept for(<<counter>>;<<boolean expression>>;<<update counter>>) { <<loop body>> } Loops • Do while’s are dumb • They stupidly run 1 to many times • Concept do { <<loop body>> } while(<<boolean expression>>); Arrays • Arrays are collections of data of the same type • Concept for declaring arrays <<type>>[] <<name>> = new <<type>>[<<amount>>]; • Use a for loop to initialize each element in the array • ***These are used a lot in this course*** Classes • Blueprints to create objects • Remember the steps – Define the class – Instance variables – Constructors – Accessors and Mutators – Additional Methods Classes • Defining the class • Concept public class <<name>> { <<body of the class>> } Classes • Instance variables are the attributes of the class • Concept public class <<name>> { private <<type>> <<name>>; … } Classes • Constructs an instance of a class in memory and sets the instance variables to a value • Default constructors have no parameters and set everything to a default value public <<name of the class>>() { <<set all instance variables>> } Classes • Parameterized Constructors have parameters that set one or all of the instance variables to a value • Concept public <<name of the class>>(<<parameters>>) { <<set instance variables to parameters>> } Classes • Mutators are used to modify instance variables in a class • Adds a layer of protection by validating values • Concept public void <<set variable name>>(<<parameter>>) { this.<<variable>> = <<parameter>>; } Classes • Accessors are used to get values of instance variables outside of the class • Concept public <<type>> <<get variable name>>() { return this.<<variable>>; } Classes • • • • Methods are behaviors of classes Used internally and externally Accessors and mutators are methods Concept <<scope>> <<return value>> <<name>> (<<parameters>>) { <<body of the method>> } Classes • Static methods are static in memory • Used as helper methods that exist outside of one particular instance <<scope>> static <<return value>> <<name>> (<<parameters>>) { <<body of the static method>> } Inheritance • Used to take the attributes and methods from a parent (super) class • Concept public class <<name>> extends <<parent name>> { <<body of the class>> } Inheritance • In inherited constructors need to all the parent’s constructor by calling “super” • Concept super(<<parameters>>); • To call inherited methods use “super.” super.<<method name>>; Interfaces • Used as a blueprint to create classes. Classes are a blueprint to create instance of objects • Only has method definitions • Concept public interface <<name>> { <<method definition>>; … } Interfaces • Interfaces are the building concept of polymorphism • To use an interface used “implements” • Concept public class <<name>> implements <<interface name>> { <<body of the class>> } Exceptions • Gracefully allows programs to crash and an exceptional event happens • To create exceptions extend the/an exception class • Then call the parent’s constructors Exceptions • Concept public <<name>> extends <<Exception>> { public <<name>>(<<parameters>>) { super(<<parameters>>) } } Exceptions • Methods that can throw exceptions need to check for those cases • Concept <<scope>> <<return>> <<name>> (<<parameters>>) throws <<Exceptions>> { … throw new <<exception name>>(); … } Exceptions • If a method throws an exception it must be called in a try catch block that handles the exception • Concept try { <<method that throws exception>>; } catch(<<exception name>> e) { System.out.println(e.getMessage()); }