diff options
| author | Zachary Ferguson <zfergus2@users.noreply.github.com> | 2015-10-07 23:46:13 -0400 | 
|---|---|---|
| committer | Zachary Ferguson <zfergus2@users.noreply.github.com> | 2015-10-07 23:46:13 -0400 | 
| commit | bc212592497b8e6277ba27a1c81a55eee3ad4c23 (patch) | |
| tree | 54b9600f90ab7643cf67cc839ee1fb253788d695 /java.html.markdown | |
| parent | e1ac6209a8d3f43e7a018d79454fb1095b3314c0 (diff) | |
| parent | abd7444f9e5343f597b561a69297122142881fc8 (diff) | |
Merge remote-tracking branch 'adambard/master'
Conflicts:
	java.html.markdown
Diffstat (limited to 'java.html.markdown')
| -rw-r--r-- | java.html.markdown | 77 | 
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  | 
