diff options
Diffstat (limited to 'java.html.markdown')
| -rw-r--r-- | java.html.markdown | 51 | 
1 files changed, 36 insertions, 15 deletions
| diff --git a/java.html.markdown b/java.html.markdown index ba602d2e..653cc97a 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -6,6 +6,7 @@ contributors:      - ["Madison Dickson", "http://github.com/mix3d"]      - ["Simon Morgan", "http://sjm.io/"]      - ["Zachary Ferguson", "http://github.com/zfergus2"] +    - ["Cameron Schermerhorn", "http://github.com/cschermerhorn"]  filename: LearnJava.java  --- @@ -114,7 +115,7 @@ public class LearnJava {          // but they can be initialized later.          final double E;          E = 2.71828; -         +          // Strings          String fooString = "My String Is Here!"; @@ -286,6 +287,23 @@ public class LearnJava {                       break;          }          System.out.println("Switch Case Result: " + monthString); +         +        // Starting in Java 7 and above, switching Strings works like this: +        String myAnswer = "maybe"; +        switch(myAnswer){ +            case "yes": +                System.out.println("You answered yes."); +                break; +            case "no": +                System.out.println("You answered no."); +                break; +            case "maybe": +                System.out.println("You answered maybe."); +                break; +            default: +                System.out.println("You answered " + myAnswer); +                break; +        }          // Conditional Shorthand          // You can use the '?' operator for quick assignments or logic forks. @@ -348,7 +366,7 @@ public class LearnJava {             validCodes.add("FINLAND");          } -        // But there's a nifty way to achive the same thing in an +        // But there's a nifty way to achieve the same thing in an          // easier way, by using something that is called Double Brace          // Initialization. @@ -358,9 +376,9 @@ public class LearnJava {              add("FINLAND");          }} -        // 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. +        // The first brace is creating a new AnonymousInnerClass and the +        // second one declares an instance initializer block. This block +        // is called when the anonymous inner class is created.          // This does not only work for Collections, it works for all          // non-final classes. @@ -368,7 +386,7 @@ public class LearnJava {  } // End LearnJava class -// You can include other, non-public outer-level classes in a .java file,  +// You can include other, non-public outer-level classes in a .java file,  // but it is good practice. Instead split classes into separate files. @@ -389,7 +407,7 @@ class Bicycle {      // Constructors are a way of creating classes      // This is a constructor      public Bicycle() { -        // You can also call another constructor:  +        // You can also call another constructor:          // this(1, 50, 5, "Bontrager");          gear = 1;          cadence = 50; @@ -489,6 +507,7 @@ public interface Digestible {  // We can now create a class that implements both of these interfaces.  public class Fruit implements Edible, Digestible { +        @Override      public void eat() {          // ... @@ -504,6 +523,7 @@ public class Fruit implements Edible, Digestible {  // interfaces. For example:  public class ExampleClass extends ExampleClassParent implements InterfaceOne,      InterfaceTwo { +      @Override      public void InterfaceOneMethod() {      } @@ -511,6 +531,7 @@ public class ExampleClass extends ExampleClassParent implements InterfaceOne,      @Override      public void InterfaceTwoMethod() {      } +  }  // Abstract Classes @@ -522,10 +543,10 @@ public class ExampleClass extends ExampleClassParent implements InterfaceOne,  // }  // Marking a class as abstract means that it contains abstract methods that must -// be defined in a child class. Similar to interfaces, abstract classes cannot  -// be instantiated, but instead must be extended and the abstract methods  +// be defined in a child class. Similar to interfaces, abstract classes cannot +// be instantiated, but instead must be extended and the abstract methods  // defined. Different from interfaces, abstract classes can contain a mixture of -// concrete and abstract methods. Methods in an interface cannot have a body,  +// concrete and abstract methods. Methods in an interface cannot have a body,  // unless the method is static, and variables are final by default, unlike an  // abstract class. Also abstract classes CAN have the "main" method. @@ -541,7 +562,7 @@ public abstract class Animal          age = 30;      } -    // No need to initialize, however in an interface  +    // No need to initialize, however in an interface      // a variable is implicitly final and hence has      // to be initialized.      protected int age; @@ -569,7 +590,7 @@ class Dog extends Animal          // age = 30;	==> ERROR!	age is private to Animal      } -    // NOTE: You will get an error if you used the  +    // 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. @@ -583,7 +604,7 @@ class Dog extends Animal      }  } -// Final Classes  +// Final Classes  // Final Class declaration syntax  // <access-level> final <final-class-name> { @@ -592,8 +613,8 @@ class Dog extends Animal  // }  // Final classes are classes that cannot be inherited from and are therefore a -// final child. In a way, final classes are the opposite of abstract classes  -// because abstract classes must be extended, but final classes cannot be  +// final child. In a way, final classes are the opposite of abstract classes +// because abstract classes must be extended, but final classes cannot be  // extended.  public final class SaberToothedCat extends Animal  { | 
