This commit is contained in:
Prashanth Babu 2013-07-07 21:04:48 -07:00
commit c51aa8e554

View File

@ -15,6 +15,9 @@ Java is a general-purpose, concurrent, class-based, object-oriented computer pro
/*
Multi-line comments look like this.
*/
/**
JavaDoc comments look like this. Used to describe the Class or various attributes of a Class.
*/
// Import ArrayList class inside of the java.util package
import java.util.ArrayList;
@ -58,12 +61,12 @@ public class LearnJava {
// Long - 64-bit signed two's complement integer
// (-9,223,372,036,854,775,808 <= long <= 9,223,372,036,854,775,807)
long fooLong = 100000L;
long fooLong = 100000L; // L is used to denote that this variable value is of type Long; else it is treated as integer by default.
// (Java has no unsigned types)
// Note: Java has no unsigned types
// Float - Single-precision 32-bit IEEE 754 Floating Point
float fooFloat = 234.5f;
float fooFloat = 234.5f; // f is used to denote that this variable value is of type float; else it is treated as double.
// Double - Double-precision 64-bit IEEE 754 Floating Point
double fooDouble = 123.4;
@ -83,8 +86,11 @@ public class LearnJava {
// \n is an escaped character that starts a new line
String barString = "Printing on a new line?\nNo Problem!";
// \t is an escaped character that adds a tab character
String bazString = "Do you want to add a tab?\tNo Problem!";
System.out.println(fooString);
System.out.println(barString);
System.out.println(bazString);
// Arrays
//The array size must be decided upon declaration
@ -128,12 +134,12 @@ public class LearnJava {
System.out.println("11%3 = "+(11 % 3)); // => 2
// Comparison operators
System.out.println("3 == 2? " + (3 == 2)); // => 0 (false)
System.out.println("3 != 2? " + (3 != 2)); // => 1 (true)
System.out.println("3 > 2? " + (3 > 2)); // => 1
System.out.println("3 < 2? " + (3 < 2)); // => 0
System.out.println("2 <= 2? " + (2 <= 2)); // => 1
System.out.println("2 >= 2? " + (2 >= 2)); // => 1
System.out.println("3 == 2? " + (3 == 2)); // => false
System.out.println("3 != 2? " + (3 != 2)); // => true
System.out.println("3 > 2? " + (3 > 2)); // => true
System.out.println("3 < 2? " + (3 < 2)); // => false
System.out.println("2 <= 2? " + (2 <= 2)); // => true
System.out.println("2 >= 2? " + (2 >= 2)); // => true
// Bitwise operators!
/*
@ -144,10 +150,11 @@ public class LearnJava {
& Bitwise AND
^ Bitwise exclusive OR
| Bitwise inclusive OR
[Java Bitwise Operators](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html)
*/
// Incrementations
int i=0;
int i = 0;
System.out.println("\n->Inc/Dec-rementation");
System.out.println(i++); //i = 1. Post-Incrementation
System.out.println(++i); //i = 2. Pre-Incrementation
@ -160,12 +167,13 @@ public class LearnJava {
System.out.println("\n->Control Structures");
// If statements are c-like
if (false){
System.out.println("I never run");
}else if (false) {
System.out.println("I am also never run");
} else {
System.out.println("I print");
int j = 10;
if (j == 10){ // Evaluates to true only if value of j is equal to 10.
System.out.println("In this case, I get executed and I print this since j is equal to 10.");
} else if (i > 10) { // Evaluates to true only if value of j is greater than 10.
System.out.println("I never run if j = 10; I will run only if j is greater than 10");
} else { // If none of the above if-conditions match, then control will fall back to else-condition; In this case, if value of j is less than 10.
System.out.println("I also never run if j = 10; I will run only if j is less than 10");
}
// While loop
@ -200,19 +208,47 @@ public class LearnJava {
System.out.println("fooFor Value: " + fooFor);
// Switch Case
//A switch works with the byte, short, char, and int primitive data types.
//It also works with enumerated types (discussed in Enum Types), the String class, and a few special classes that wrap certain primitive types: Character, Byte, Short, and Integer.
int month = 3;
String monthString;
switch (month){
case 1: monthString = "January";
case 1:
monthString = "January";
break;
case 2: monthString = "February";
case 2:
monthString = "February";
break;
case 3: monthString = "March";
case 3:
monthString = "March";
break;
default: monthString = "Some other month";
default: //The default section handles all values that are not explicitly handled by one of the case sections.
monthString = "Some other month";
break;
}
System.out.println("Switch Case Result: " + monthString);
// Effective JDK 7.0, Strings can be used for case-matching in Switch statement.
final String dayOfWeek = "Friday";
switch (dayOfWeek) {
case "Monday":
System.out.println("Aargh!! Start of the work week!");
break;
case "Tuesday":
case "Wednesday":
case "Thursday":
System.out.println("Midweek");
break;
case "Friday":
System.out.println("Awesome! End of work week");
break;
case "Saturday":
case "Sunday":
System.out.println("Weekend");
break;
default:
System.out.println("There is no such weekday, at least on our planet.");
}
///////////////////////////////////////
@ -251,10 +287,11 @@ public class LearnJava {
Bicycle trek = new Bicycle();
// Call object methods
trek.speedUp(3);
trek.speedUp(3); // Should always use setter and getter methods to access the attributes of a class
trek.setCadence(100);
// toString is a convention
// toString is a convention to display the attribute values of this Object.
// Has to be overridden in the POJO (Plain Old Java Objects) to see the actual values else internal representation of the address will be displayed.
System.out.println("trek info: " + trek.toString());
} // End main method
@ -266,15 +303,17 @@ public class LearnJava {
// Class Declaration Syntax:
// <public/private/protected> class <class name>{
// //data fields, constructors, functions all inside
// //data fields, constructors, functions all inside.
// //functions are called as methods in Java.
// }
class Bicycle {
// Bicycle's Fields/Variables
public int cadence; // Public: Can be accessed from anywhere
private int speed; // Private: Only accessable from within the class
protected int gear; // Protected: Accessible from the class and subclasses
private int speed; // Private: Only accessible from within the class
protected int gear; // Protected: Accessible from the class and all the subclasses
String name; // default: Only accessible from within this package
// Constructors are a way of creating classes
// This is a default constructor
@ -282,13 +321,15 @@ class Bicycle {
gear = 1;
cadence = 50;
speed = 5;
name = "Bontrager";
}
// This is a specified constructor (it contains arguments)
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear;
cadence = startCadence;
speed = startSpeed;
public Bicycle(int startCadence, int startSpeed, int startGear, String name) {
this.gear = startGear;
this.cadence = startCadence;
this.speed = startSpeed;
this.name = name;
}
// Function Syntax:
@ -319,10 +360,21 @@ class Bicycle {
speed -= decrement;
}
public void setName(int newName) {
name = newName;
}
public String getName() {
return name;
}
//Method to display the attribute values of this Object.
@Override
public String toString() {
return "gear: "+Integer.toString(gear)+
" cadence: "+Integer.toString(cadence)+
" speed: "+Integer.toString(speed);
return "gear: " + gear +
" cadence: " + cadence +
" speed: " + speed +
" name: " + name;
}
} // end class Bicycle
@ -333,7 +385,7 @@ class PennyFarthing extends Bicycle {
public PennyFarthing(int startCadence, int startSpeed){
// Call the parent constructor with super
super(startCadence, startSpeed, 0);
super(startCadence, startSpeed, 0, "PennyFarthing");
}
// You should mark a method you're overriding with an @annotation
@ -350,13 +402,18 @@ class PennyFarthing extends Bicycle {
## Further Reading
The links provided here below are just to get an understanding of the topic, feel free to Google and find specific examples.
Other Topics To Research:
* [Inheritance](http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
* [Java Tutorial Trail from Sun / Oracle](http://docs.oracle.com/javase/tutorial/index.html)
* [Polymorphism](http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
* [Java Access level modifiers](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html)
* [Abstraction](http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
* [Object-Oriented Programming Concepts](http://docs.oracle.com/javase/tutorial/java/concepts/index.html):
* [Inheritance](http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)
* [Polymorphism](http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html)
* [Abstraction](http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)
* [Exceptions](http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html)
@ -365,5 +422,3 @@ Other Topics To Research:
* [Generics](http://docs.oracle.com/javase/tutorial/java/generics/index.html)
* [Java Code Conventions](http://www.oracle.com/technetwork/java/codeconv-138413.html)
* The links provided are just to get an understanding of the topic, feel free to google and find specific examples