summaryrefslogtreecommitdiffhomepage
path: root/java.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'java.html.markdown')
-rw-r--r--java.html.markdown77
1 files changed, 67 insertions, 10 deletions
diff --git a/java.html.markdown b/java.html.markdown
index 5c230501..61478968 100644
--- a/java.html.markdown
+++ b/java.html.markdown
@@ -50,9 +50,9 @@ public class LearnJava {
System.out.printf("pi = %.5f", Math.PI); // => pi = 3.14159
///////////////////////////////////////
- // Variables
+ // Variables
///////////////////////////////////////
-
+
/*
* Variable Declaration
*/
@@ -336,29 +336,29 @@ public class LearnJava {
// toString returns this Object's string representation.
System.out.println("trek info: " + trek.toString());
-
+
// Double Brace Initialization
// The Java Language has no syntax for how to create static Collections
// in an easy way. Usually you end up in the following way:
-
+
private static final Set<String> COUNTRIES = new HashSet<String>();
static {
validCodes.add("DENMARK");
validCodes.add("SWEDEN");
validCodes.add("FINLAND");
}
-
+
// But there's a nifty way to achive the same thing in an
// easier way, by using something that is called Double Brace
// Initialization.
-
+
private static final Set<String> COUNTRIES = HashSet<String>() {{
add("DENMARK");
add("SWEDEN");
- add("FINLAND");
+ add("FINLAND");
}}
-
- // The first brace is creating an new AnonymousInnerClass and the
+
+ // The first brace is creating an new AnonymousInnerClass and the
// second one declares and instance initializer block. This block
// is called with the anonymous inner class is created.
// This does not only work for Collections, it works for all
@@ -513,7 +513,12 @@ public class ExampleClass extends ExampleClassParent implements InterfaceOne,
}
}
+<<<<<<< HEAD
// Abstract Classes
+=======
+
+// Abstract Classes
+>>>>>>> adambard/master
// Abstract Class declaration syntax
// <access-level> abstract <abstract-class-name> extends <super-abstract-classes> {
// // Constants and variables
@@ -528,8 +533,9 @@ public class ExampleClass extends ExampleClassParent implements InterfaceOne,
// unless the method is static, and variables are final by default, unlike an
// abstract class. Also abstract classes CAN have the "main" method.
-public abstract class Animal
+public abstract class Animal
{
+<<<<<<< HEAD
public abstract void makeSound();
// Method can have a body
@@ -555,10 +561,38 @@ public abstract class Animal
{
System.out.println("I am abstract");
}
+=======
+ public abstract void makeSound();
+
+ // Method can have a body
+ public void eat()
+ {
+ System.out.println("I am an animal and I am Eating.");
+ // Note: We can access private variable here.
+ age = 30;
+ }
+
+ // No need to initialize, however in an interface
+ // a variable is implicitly final and hence has
+ // to be initialized.
+ private int age;
+
+ public void printAge()
+ {
+ System.out.println(age);
+ }
+
+ // Abstract classes can have main function.
+ public static void main(String[] args)
+ {
+ System.out.println("I am abstract");
+ }
+>>>>>>> adambard/master
}
class Dog extends Animal
{
+<<<<<<< HEAD
// Note still have to override the abstract methods in the
// abstract class.
@Override
@@ -580,6 +614,29 @@ class Dog extends Animal
pluto.eat();
pluto.printAge();
}
+=======
+ // Note still have to override the abstract methods in the
+ // abstract class.
+ @Override
+ public void makeSound()
+ {
+ System.out.println("Bark");
+ // age = 30; ==> ERROR! age is private to Animal
+ }
+
+ // NOTE: You will get an error if you used the
+ // @Override annotation here, since java doesn't allow
+ // overriding of static methods.
+ // What is happening here is called METHOD HIDING.
+ // Check out this awesome SO post: http://stackoverflow.com/questions/16313649/
+ public static void main(String[] args)
+ {
+ Dog pluto = new Dog();
+ pluto.makeSound();
+ pluto.eat();
+ pluto.printAge();
+ }
+>>>>>>> adambard/master
}
// Final Classes