From 43d602b0c0ca473421cda2c43fd87f76cf1620e7 Mon Sep 17 00:00:00 2001 From: rduerig Date: Fri, 16 Aug 2013 12:37:40 +0200 Subject: Update java.html.markdown added a reference to a book --- java.html.markdown | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index b4531635..cdcf620c 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -405,3 +405,7 @@ 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) + +Books: + +* [Head First Java] (http://www.headfirstlabs.com/books/hfjava/) -- cgit v1.2.3 From 995013c92119395564d303a2b6b5e67fcb66a5fc Mon Sep 17 00:00:00 2001 From: Madison Dickson Date: Wed, 4 Sep 2013 11:30:44 -0400 Subject: Including for each loop example --- java.html.markdown | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index cdcf620c..a2fc3630 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -210,7 +210,19 @@ public class LearnJava { //Iterated 10 times, fooFor 0->9 } System.out.println("fooFor Value: " + fooFor); - + + // For Each Loop + // An automatic iteration through an array or list of objects. + int[] fooList = {1,2,3,4,5,6,7,8,9}; + //for each loop structure => for( : ) + //reads as: for each object in the array + //note: the object type must match the array. + + for( int bar : fooList ){ + //System.out.println(bar); + //Iterates 9 times and prints 1-9 on new lines + } + // Switch Case // A switch works with the byte, short, char, and int data types. // It also works with enumerated types (discussed in Enum Types), -- cgit v1.2.3 From 338862e732e82a45fbd8843d48492b4bd3121c0b Mon Sep 17 00:00:00 2001 From: Madison Dickson Date: Fri, 13 Sep 2013 11:58:46 -0400 Subject: Added '?' conditional logic example Also added myself as a contributor. --- java.html.markdown | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index a2fc3630..0dec51d1 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -3,6 +3,7 @@ language: java contributors: - ["Jake Prather", "http://github.com/JakeHP"] + - ["Madison Dickson", "http://github.com/mix3d"] filename: LearnJava.java --- @@ -245,6 +246,13 @@ public class LearnJava { break; } System.out.println("Switch Case Result: " + monthString); + + // Conditional Shorthand + // You can use the '?' operator for quick assignments or logic forks. + // Reads as "If (statement) is true, use , otherwise, use " + int foo = 5 + String bar = (foo < 10) ? "A" : "B"; + System.out.println(bar); // Prints A, because the statement is true /////////////////////////////////////// -- cgit v1.2.3 From 925ded87809a5ae9f40a3c825324cb083eaba81e Mon Sep 17 00:00:00 2001 From: Christos Kontas Date: Tue, 8 Oct 2013 19:09:12 +0300 Subject: [java] Missing semi-colon at code example --- java.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 0dec51d1..3d0cb1d7 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -250,7 +250,7 @@ public class LearnJava { // Conditional Shorthand // You can use the '?' operator for quick assignments or logic forks. // Reads as "If (statement) is true, use , otherwise, use " - int foo = 5 + int foo = 5; String bar = (foo < 10) ? "A" : "B"; System.out.println(bar); // Prints A, because the statement is true -- cgit v1.2.3 From 8121793f32c36b6727474c6d41f31c27cea2ebf0 Mon Sep 17 00:00:00 2001 From: Adam Brenecki Date: Sat, 16 Nov 2013 19:40:06 +1030 Subject: Fix errors specified in #410. --- java.html.markdown | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 3d0cb1d7..b4624d5e 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -26,7 +26,8 @@ import java.util.ArrayList; // Import all classes inside of java.security package import java.security.*; -// Each .java file contains one public class, with the same name as the file. +// Each .java file contains one outer-level public class, with the same name as +// the file. public class LearnJava { // A program must have a main method as an entry point @@ -84,7 +85,7 @@ public class LearnJava { // Char - A single 16-bit Unicode character char fooChar = 'A'; - // Use final to make a variable immutable + // final variables can't be reassigned to another object final int HOURS_I_WORK_PER_WEEK = 9001; // Strings @@ -99,7 +100,7 @@ public class LearnJava { System.out.println(bazString); // Arrays - //The array size must be decided upon declaration + //The array size must be decided upon instantiation //The format for declaring an array is follows: // [] = new []; int [] intArray = new int[10]; @@ -161,10 +162,13 @@ public class LearnJava { // Incrementations 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 - System.out.println(i--); //i = 1. Post-Decrementation - System.out.println(--i); //i = 0. Pre-Decrementation + // The ++ and -- operators increment and decrement by 1 respectively. + // If they are placed before the variable, they increment then return; + // after the variable they return then increment. + System.out.println(i++); //i = 1, prints 0 (post-increment) + System.out.println(++i); //i = 2, prints 2 (pre-increment) + System.out.println(i--); //i = 1, prints 2 (post-decrement) + System.out.println(--i); //i = 0, prints 0 (pre-decrement) /////////////////////////////////////// // Control Structures @@ -211,19 +215,19 @@ public class LearnJava { //Iterated 10 times, fooFor 0->9 } System.out.println("fooFor Value: " + fooFor); - + // For Each Loop // An automatic iteration through an array or list of objects. int[] fooList = {1,2,3,4,5,6,7,8,9}; //for each loop structure => for( : ) //reads as: for each object in the array //note: the object type must match the array. - + for( int bar : fooList ){ //System.out.println(bar); //Iterates 9 times and prints 1-9 on new lines } - + // Switch Case // A switch works with the byte, short, char, and int data types. // It also works with enumerated types (discussed in Enum Types), @@ -246,7 +250,7 @@ public class LearnJava { break; } System.out.println("Switch Case Result: " + monthString); - + // Conditional Shorthand // You can use the '?' operator for quick assignments or logic forks. // Reads as "If (statement) is true, use , otherwise, use " @@ -294,14 +298,14 @@ public class LearnJava { trek.speedUp(3); // You should always use setter and getter methods trek.setCadence(100); - // toString is a convention to display the value of this Object. + // toString returns this Object's string representation. System.out.println("trek info: " + trek.toString()); } // End main method } // End LearnJava class -// You can include other, non-public classes in a .java file +// You can include other, non-public outer-level classes in a .java file // Class Declaration Syntax: @@ -319,7 +323,7 @@ class Bicycle { String name; // default: Only accessible from within this package // Constructors are a way of creating classes - // This is a default constructor + // This is a constructor public Bicycle() { gear = 1; cadence = 50; @@ -327,7 +331,7 @@ class Bicycle { name = "Bontrager"; } - // This is a specified constructor (it contains arguments) + // This is a constructor that takes arguments public Bicycle(int startCadence, int startSpeed, int startGear, String name) { this.gear = startGear; this.cadence = startCadence; -- cgit v1.2.3 From 1e0d5abebac015808e2ac22ac8ba741b05dc8f6f Mon Sep 17 00:00:00 2001 From: Jake Prather Date: Thu, 30 Jan 2014 12:36:19 -0600 Subject: Issue#163 https://github.com/adambard/learnxinyminutes-docs/issues/163 --- java.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index b4624d5e..1fbf6a21 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -191,7 +191,7 @@ public class LearnJava { { //System.out.println(fooWhile); //Increment the counter - //Iterated 99 times, fooWhile 0->99 + //Iterated 100 times, fooWhile 0,1,2...99 fooWhile++; } System.out.println("fooWhile Value: " + fooWhile); -- cgit v1.2.3 From 928e53a10885f4bfcb6b603072b0a27cc0caf36d Mon Sep 17 00:00:00 2001 From: "U-Christopher-PC\\Christopher" Date: Mon, 10 Feb 2014 14:28:54 -0700 Subject: Added section on interfaces. Added array info --- java.html.markdown | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 1fbf6a21..3cab973e 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -101,14 +101,17 @@ public class LearnJava { // Arrays //The array size must be decided upon instantiation - //The format for declaring an array is follows: + //The following formats work for declaring an arrow // [] = new []; + // [] = new []; int [] intArray = new int[10]; String [] stringArray = new String[1]; - boolean [] booleanArray = new boolean[100]; + boolean boolArray [] = new boolean[100]; // Another way to declare & initialize an array int [] y = {9000, 1000, 1337}; + String names [] = {"Bob", "John", "Fred", "Juan Pedro"}; + boolean bools[] = new boolean[] {true, false, false}; // Indexing an array - Accessing an element System.out.println("intArray @ 0: " + intArray[0]); @@ -405,6 +408,46 @@ class PennyFarthing extends Bicycle { } +//Interfaces +//Interface declaration syntax +// interface extends { +// //Constants +// //Method declarations +//} + +//Example - Food: +public interface Edible { + public void eat(); //Any class that implements this interface, must implement this method +} + +public interface Digestible { + public void digest(); +} + + +//We can now create a class that implements both of these interfaces +public class Fruit implements Edible, Digestible { + public void eat() { + //... + } + + public void digest() { + //... + } +} + +//In java, you can extend only one class, but you can implement many interfaces. +//For example: +public class ExampleClass extends ExampleClassParent implements InterfaceOne, InterfaceTwo { + public void InterfaceOneMethod() { + + } + + public void InterfaceTwoMethod() { + + } +} + ``` ## Further Reading -- cgit v1.2.3 From 5746c14db74f65826b297e9ea42e37e8d1ad91f2 Mon Sep 17 00:00:00 2001 From: Ariel Date: Wed, 12 Feb 2014 22:02:58 -0500 Subject: Added additional resources for learning Java --- java.html.markdown | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 3cab973e..50875491 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -454,7 +454,7 @@ public class ExampleClass extends ExampleClassParent implements InterfaceOne, In 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: +**Official Oracle Guides**: * [Java Tutorial Trail from Sun / Oracle](http://docs.oracle.com/javase/tutorial/index.html) @@ -473,6 +473,19 @@ Other Topics To Research: * [Java Code Conventions](http://www.oracle.com/technetwork/java/codeconv-138413.html) -Books: +**Online Practice and Tutorials** + +* [Learneroo.com - Learn Java](http://www.learneroo.com) + +* [Codingbat.com](http://codingbat.com/java) + + +**Books**: + +* [Head First Java](http://www.headfirstlabs.com/books/hfjava/) + +* [Objects First with Java](http://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660) + +* [Java The Complete Reference](http://www.amazon.com/gp/product/0071606300) + -* [Head First Java] (http://www.headfirstlabs.com/books/hfjava/) -- cgit v1.2.3 From 09b19309862cde84d68e05f1f3aa5e534a9185ae Mon Sep 17 00:00:00 2001 From: Kado Date: Thu, 7 Aug 2014 09:55:27 +0300 Subject: Spelling error From datetype to datatype --- java.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 50875491..3484aee5 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -103,7 +103,7 @@ public class LearnJava { //The array size must be decided upon instantiation //The following formats work for declaring an arrow // [] = new []; - // [] = new []; + // [] = new []; int [] intArray = new int[10]; String [] stringArray = new String[1]; boolean boolArray [] = new boolean[100]; -- cgit v1.2.3 From 12c9653b03271abbd13906058ece129c13f9c055 Mon Sep 17 00:00:00 2001 From: Levi Bostian Date: Mon, 1 Sep 2014 11:01:30 -0500 Subject: Fix arrow => array java typo. --- java.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 3484aee5..dffc3828 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -101,7 +101,7 @@ public class LearnJava { // Arrays //The array size must be decided upon instantiation - //The following formats work for declaring an arrow + //The following formats work for declaring an array // [] = new []; // [] = new []; int [] intArray = new int[10]; -- cgit v1.2.3 From 3a12532da9d2b76adb960ece6d610bdc4099a57d Mon Sep 17 00:00:00 2001 From: Sergey Date: Fri, 31 Oct 2014 17:29:06 +0300 Subject: Added description of LinkedList, Map & HashMap. --- java.html.markdown | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index dffc3828..478d85d6 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -123,9 +123,15 @@ public class LearnJava { // Others to check out // ArrayLists - Like arrays except more functionality is offered, // and the size is mutable - // LinkedLists - // Maps - // HashMaps + // LinkedLists - Implementation of doubly-linked list. All of the + // operations perform as could be expected for + // a doubly-linked list. + // Maps - An objects that maps keys to values. A map cannot contain + // duplicate keys; each key can map to at most one value. + // HashMaps - This class uses a hashtable to implement the Map interface. + // This allows the execution time of basic operations, + // such as get and insert element, to remain constant even + // for large sets. /////////////////////////////////////// // Operators -- cgit v1.2.3 From 494d97c4ee624f384ce771bc06f14d53ffecfca9 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sat, 1 Nov 2014 22:32:51 +0300 Subject: [Java] Maps description little fix. --- java.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 478d85d6..f08c4679 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -126,7 +126,7 @@ public class LearnJava { // LinkedLists - Implementation of doubly-linked list. All of the // operations perform as could be expected for // a doubly-linked list. - // Maps - An objects that maps keys to values. A map cannot contain + // Maps - A set of objects that maps keys to values. A map cannot contain // duplicate keys; each key can map to at most one value. // HashMaps - This class uses a hashtable to implement the Map interface. // This allows the execution time of basic operations, -- cgit v1.2.3 From c4e1109e3aeef641798a59daf56f82aa60dc81ff Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 22 Dec 2014 13:35:46 +1100 Subject: Remove spurious "[" --- java.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index f08c4679..32febcfd 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -49,7 +49,7 @@ public class LearnJava { // Types & Variables /////////////////////////////////////// - // Declare a variable using [ + // Declare a variable using // Byte - 8-bit signed two's complement integer // (-128 <= byte <= 127) byte fooByte = 100; -- cgit v1.2.3 From c9ae9ea396cae5c357511cecb3a308740409302a Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 22 Dec 2014 13:37:03 +1100 Subject: Spelling corrrection --- java.html.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index f08c4679..d77d1c23 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -268,9 +268,9 @@ public class LearnJava { System.out.println(bar); // Prints A, because the statement is true - /////////////////////////////////////// - // Converting Data Types And Typcasting - /////////////////////////////////////// + //////////////////////////////////////// + // Converting Data Types And Typecasting + //////////////////////////////////////// // Converting data -- cgit v1.2.3 From 0512b3120acbe9d3a534cbc7685c30a65e067801 Mon Sep 17 00:00:00 2001 From: Jakukyo Friel Date: Wed, 7 Jan 2015 23:15:25 +0800 Subject: java: Add `@Override` for interfaces. --- java.html.markdown | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 4661d4f9..3dd65679 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -4,6 +4,7 @@ language: java contributors: - ["Jake Prather", "http://github.com/JakeHP"] - ["Madison Dickson", "http://github.com/mix3d"] + - ["Jakukyo Friel", "http://weakish.github.io"] filename: LearnJava.java --- @@ -433,10 +434,12 @@ 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() { //... } + @Override public void digest() { //... } @@ -445,10 +448,12 @@ public class Fruit implements Edible, Digestible { //In java, you can extend only one class, but you can implement many interfaces. //For example: public class ExampleClass extends ExampleClassParent implements InterfaceOne, InterfaceTwo { + @Override public void InterfaceOneMethod() { } + @Override public void InterfaceTwoMethod() { } -- cgit v1.2.3 From 82342bbe989a1c9b64fa81c8904dacc74f462a35 Mon Sep 17 00:00:00 2001 From: Tim Miller Date: Mon, 23 Feb 2015 10:37:56 -0500 Subject: Update java.html.markdown Added "Thinking In Java" by Bruce Eckel to the book list. It's the best Java book I've ever read. --- java.html.markdown | 2 ++ 1 file changed, 2 insertions(+) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 3dd65679..ebe11bd3 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -495,6 +495,8 @@ The links provided here below are just to get an understanding of the topic, fee * [Head First Java](http://www.headfirstlabs.com/books/hfjava/) +* [Thinking in Java](http://www.mindview.net/Books/TIJ/) + * [Objects First with Java](http://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660) * [Java The Complete Reference](http://www.amazon.com/gp/product/0071606300) -- cgit v1.2.3 From 6034688980162cc5099dd2701b88e449182862f7 Mon Sep 17 00:00:00 2001 From: Antonio Lima Date: Sun, 15 Mar 2015 21:17:52 -0400 Subject: No-space array notation type[] --- java.html.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index ebe11bd3..10dd498c 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -103,15 +103,15 @@ public class LearnJava { // Arrays //The array size must be decided upon instantiation //The following formats work for declaring an array - // [] = new []; + //[] = new []; // [] = new []; - int [] intArray = new int[10]; - String [] stringArray = new String[1]; - boolean boolArray [] = new boolean[100]; + int[] intArray = new int[10]; + String[] stringArray = new String[1]; + boolean boolArray[] = new boolean[100]; // Another way to declare & initialize an array - int [] y = {9000, 1000, 1337}; - String names [] = {"Bob", "John", "Fred", "Juan Pedro"}; + int[] y = {9000, 1000, 1337}; + String names[] = {"Bob", "John", "Fred", "Juan Pedro"}; boolean bools[] = new boolean[] {true, false, false}; // Indexing an array - Accessing an element -- cgit v1.2.3 From 933f0a461d0cd6bcb70c8864778f7ae7e912c00c Mon Sep 17 00:00:00 2001 From: Simon Morgan Date: Sat, 23 May 2015 12:13:07 +0100 Subject: A bunch of small changes to aid clarity, brevity and/or consistency, none of which should alter the semantics. --- java.html.markdown | 171 +++++++++++++++++++++++++---------------------------- 1 file changed, 80 insertions(+), 91 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 10dd498c..363a16f6 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -1,16 +1,16 @@ --- - language: java contributors: - ["Jake Prather", "http://github.com/JakeHP"] - - ["Madison Dickson", "http://github.com/mix3d"] - ["Jakukyo Friel", "http://weakish.github.io"] + - ["Madison Dickson", "http://github.com/mix3d"] + - ["Simon Morgan", "http://sjm.io/"] filename: LearnJava.java - --- -Java is a general-purpose, concurrent, class-based, object-oriented computer programming language. -[Read more here.](http://docs.oracle.com/javase/tutorial/java/index.html) +Java is a general-purpose, concurrent, class-based, object-oriented computer +programming language. +[Read more here.](http://docs.oracle.com/javase/tutorial/java/) ```java // Single-line comments start with // @@ -101,10 +101,10 @@ public class LearnJava { System.out.println(bazString); // Arrays - //The array size must be decided upon instantiation - //The following formats work for declaring an array - //[] = new []; - // [] = new []; + // The array size must be decided upon instantiation + // The following formats work for declaring an array + // [] = new []; + // [] = new []; int[] intArray = new int[10]; String[] stringArray = new String[1]; boolean boolArray[] = new boolean[100]; @@ -122,17 +122,17 @@ public class LearnJava { System.out.println("intArray @ 1: " + intArray[1]); // => 1 // Others to check out - // ArrayLists - Like arrays except more functionality is offered, - // and the size is mutable + // ArrayLists - Like arrays except more functionality is offered, and + // the size is mutable // LinkedLists - Implementation of doubly-linked list. All of the - // operations perform as could be expected for - // a doubly-linked list. - // Maps - A set of objects that maps keys to values. A map cannot contain - // duplicate keys; each key can map to at most one value. - // HashMaps - This class uses a hashtable to implement the Map interface. - // This allows the execution time of basic operations, - // such as get and insert element, to remain constant even - // for large sets. + // operations perform as could be expected for a + // doubly-linked list. + // Maps - A set of objects that maps keys to values. A map cannot + // contain duplicate keys; each key can map to at most one value. + // HashMaps - This class uses a hashtable to implement the Map + // interface. This allows the execution time of basic + // operations, such as get and insert element, to remain + // constant even for large sets. /////////////////////////////////////// // Operators @@ -175,10 +175,10 @@ public class LearnJava { // The ++ and -- operators increment and decrement by 1 respectively. // If they are placed before the variable, they increment then return; // after the variable they return then increment. - System.out.println(i++); //i = 1, prints 0 (post-increment) - System.out.println(++i); //i = 2, prints 2 (pre-increment) - System.out.println(i--); //i = 1, prints 2 (post-decrement) - System.out.println(--i); //i = 0, prints 0 (pre-decrement) + System.out.println(i++); // i = 1, prints 0 (post-increment) + System.out.println(++i); // i = 2, prints 2 (pre-increment) + System.out.println(i--); // i = 1, prints 2 (post-decrement) + System.out.println(--i); // i = 0, prints 0 (pre-decrement) /////////////////////////////////////// // Control Structures @@ -197,73 +197,68 @@ public class LearnJava { // While loop int fooWhile = 0; - while(fooWhile < 100) - { - //System.out.println(fooWhile); - //Increment the counter - //Iterated 100 times, fooWhile 0,1,2...99 + while(fooWhile < 100) { + System.out.println(fooWhile); + // Increment the counter + // Iterated 100 times, fooWhile 0,1,2...99 fooWhile++; } System.out.println("fooWhile Value: " + fooWhile); // Do While Loop int fooDoWhile = 0; - do - { - //System.out.println(fooDoWhile); - //Increment the counter - //Iterated 99 times, fooDoWhile 0->99 + do { + System.out.println(fooDoWhile); + // Increment the counter + // Iterated 99 times, fooDoWhile 0->99 fooDoWhile++; - }while(fooDoWhile < 100); + } while(fooDoWhile < 100); System.out.println("fooDoWhile Value: " + fooDoWhile); // For Loop int fooFor; - //for loop structure => for(; ; ) - for(fooFor=0; fooFor<10; fooFor++){ - //System.out.println(fooFor); - //Iterated 10 times, fooFor 0->9 + // for loop structure => for(; ; ) + for(fooFor = 0; fooFor < 10; fooFor++){ + System.out.println(fooFor); + // Iterated 10 times, fooFor 0->9 } System.out.println("fooFor Value: " + fooFor); // For Each Loop // An automatic iteration through an array or list of objects. int[] fooList = {1,2,3,4,5,6,7,8,9}; - //for each loop structure => for( : ) - //reads as: for each object in the array - //note: the object type must match the array. + // for each loop structure => for( : ) + // reads as: for each object in the array + // note: the object type must match the array. - for( int bar : fooList ){ - //System.out.println(bar); + for (int bar : fooList){ + System.out.println(bar); //Iterates 9 times and prints 1-9 on new lines } // Switch Case // A switch works with the byte, short, char, and int data types. - // It also works with enumerated types (discussed in Enum Types), - // the String class, and a few special classes that wrap - // primitive types: Character, Byte, Short, and Integer. + // It also works with enumerated types (discussed in Enum Types), the + // String class, and a few special classes that wrap primitive types: + // Character, Byte, Short, and Integer. int month = 3; String monthString; - switch (month){ - case 1: - monthString = "January"; - break; - case 2: - monthString = "February"; + switch (month) { + case 1: monthString = "January"; break; - case 3: - monthString = "March"; + case 2: monthString = "February"; break; - default: - monthString = "Some other month"; + case 3: monthString = "March"; break; + default: monthString = "Some other month"; + break; } System.out.println("Switch Case Result: " + monthString); // Conditional Shorthand // You can use the '?' operator for quick assignments or logic forks. - // Reads as "If (statement) is true, use , otherwise, use " + // Reads as "If (statement) is true, use , otherwise, use + // " int foo = 5; String bar = (foo < 10) ? "A" : "B"; System.out.println(bar); // Prints A, because the statement is true @@ -287,9 +282,8 @@ public class LearnJava { // String // Typecasting - // You can also cast java objects, there's a lot of details and - // deals with some more intermediate concepts. - // Feel free to check it out here: + // You can also cast Java objects, there's a lot of details and deals + // with some more intermediate concepts. Feel free to check it out here: // http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html @@ -319,9 +313,9 @@ public class LearnJava { // Class Declaration Syntax: -// class { -// //data fields, constructors, functions all inside. -// //functions are called as methods in Java. +// class { +// // data fields, constructors, functions all inside. +// // functions are called as methods in Java. // } class Bicycle { @@ -342,7 +336,8 @@ class Bicycle { } // This is a constructor that takes arguments - public Bicycle(int startCadence, int startSpeed, int startGear, String name) { + public Bicycle(int startCadence, int startSpeed, int startGear, + String name) { this.gear = startGear; this.cadence = startCadence; this.speed = startSpeed; @@ -388,10 +383,8 @@ class Bicycle { //Method to display the attribute values of this Object. @Override public String toString() { - return "gear: " + gear + - " cadence: " + cadence + - " speed: " + speed + - " name: " + name; + return "gear: " + gear + " cadence: " + cadence + " speed: " + speed + + " name: " + name; } } // end class Bicycle @@ -405,26 +398,26 @@ class PennyFarthing extends Bicycle { super(startCadence, startSpeed, 0, "PennyFarthing"); } - // You should mark a method you're overriding with an @annotation - // To learn more about what annotations are and their purpose - // check this out: http://docs.oracle.com/javase/tutorial/java/annotations/ + // You should mark a method you're overriding with an @annotation. + // To learn more about what annotations are and their purpose check this + // out: http://docs.oracle.com/javase/tutorial/java/annotations/ @Override public void setGear(int gear) { gear = 0; } - } -//Interfaces -//Interface declaration syntax -// interface extends { -// //Constants -// //Method declarations -//} +// Interfaces +// Interface declaration syntax +// interface extends { +// // Constants +// // Method declarations +// } -//Example - Food: +// Example - Food: public interface Edible { - public void eat(); //Any class that implements this interface, must implement this method + public void eat(); // Any class that implements this interface, must + // implement this method. } public interface Digestible { @@ -432,33 +425,31 @@ public interface Digestible { } -//We can now create a class that implements both of these interfaces +// We can now create a class that implements both of these interfaces. public class Fruit implements Edible, Digestible { @Override public void eat() { - //... + // ... } @Override public void digest() { - //... + // ... } } -//In java, you can extend only one class, but you can implement many interfaces. -//For example: -public class ExampleClass extends ExampleClassParent implements InterfaceOne, InterfaceTwo { +// In Java, you can extend only one class, but you can implement many +// interfaces. For example: +public class ExampleClass extends ExampleClassParent implements InterfaceOne, + InterfaceTwo { @Override public void InterfaceOneMethod() { - } @Override public void InterfaceTwoMethod() { - } } - ``` ## Further Reading @@ -500,5 +491,3 @@ The links provided here below are just to get an understanding of the topic, fee * [Objects First with Java](http://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660) * [Java The Complete Reference](http://www.amazon.com/gp/product/0071606300) - - -- cgit v1.2.3 From b72c575c0442006c4eed1da46e1f6a0129f55d99 Mon Sep 17 00:00:00 2001 From: Simon Morgan Date: Sat, 23 May 2015 12:37:04 +0100 Subject: Some more small changes that don't affect semantics. --- java.html.markdown | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 363a16f6..f6bc82c6 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -31,17 +31,17 @@ import java.security.*; // the file. public class LearnJava { - // A program must have a main method as an entry point + // A program must have a main method as an entry point. public static void main (String[] args) { - // Use System.out.println to print lines + // Use System.out.println() to print lines. System.out.println("Hello World!"); System.out.println( "Integer: " + 10 + " Double: " + 3.14 + " Boolean: " + true); - // To print without a newline, use System.out.print + // To print without a newline, use System.out.print(). System.out.print("Hello "); System.out.print("World"); @@ -69,7 +69,7 @@ public class LearnJava { // L is used to denote that this variable value is of type Long; // anything without is treated as integer by default. - // Note: Java has no unsigned types + // Note: Java has no unsigned types. // Float - Single-precision 32-bit IEEE 754 Floating Point float fooFloat = 234.5f; @@ -86,7 +86,7 @@ public class LearnJava { // Char - A single 16-bit Unicode character char fooChar = 'A'; - // final variables can't be reassigned to another object + // final variables can't be reassigned to another object. final int HOURS_I_WORK_PER_WEEK = 9001; // Strings @@ -123,7 +123,7 @@ public class LearnJava { // Others to check out // ArrayLists - Like arrays except more functionality is offered, and - // the size is mutable + // the size is mutable. // LinkedLists - Implementation of doubly-linked list. All of the // operations perform as could be expected for a // doubly-linked list. @@ -160,13 +160,13 @@ public class LearnJava { // Bitwise operators! /* - ~ Unary bitwise complement - << Signed left shift - >> Signed right shift - >>> Unsigned right shift - & Bitwise AND - ^ Bitwise exclusive OR - | Bitwise inclusive OR + ~ Unary bitwise complement + << Signed left shift + >> Signed right shift + >>> Unsigned right shift + & Bitwise AND + ^ Bitwise exclusive OR + | Bitwise inclusive OR */ // Incrementations @@ -218,7 +218,7 @@ public class LearnJava { // For Loop int fooFor; // for loop structure => for(; ; ) - for(fooFor = 0; fooFor < 10; fooFor++){ + for (fooFor = 0; fooFor < 10; fooFor++) { System.out.println(fooFor); // Iterated 10 times, fooFor 0->9 } @@ -226,12 +226,12 @@ public class LearnJava { // For Each Loop // An automatic iteration through an array or list of objects. - int[] fooList = {1,2,3,4,5,6,7,8,9}; - // for each loop structure => for( : ) + int[] fooList = {1, 2, 3, 4, 5, 6, 7, 8, 9}; + // for each loop structure => for ( : ) // reads as: for each object in the array // note: the object type must match the array. - for (int bar : fooList){ + for (int bar : fooList) { System.out.println(bar); //Iterates 9 times and prints 1-9 on new lines } -- cgit v1.2.3 From 7560b334dbc528784580d810d5857ac6a859f6e1 Mon Sep 17 00:00:00 2001 From: Simon Morgan Date: Sat, 23 May 2015 12:51:20 +0100 Subject: Improve description of the for loop. --- java.html.markdown | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index f6bc82c6..7ab22823 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -225,11 +225,12 @@ public class LearnJava { System.out.println("fooFor Value: " + fooFor); // For Each Loop - // An automatic iteration through an array or list of objects. + // The for loop is also able to iterate over arrays as well as objects + // that implement the Iterable interface. int[] fooList = {1, 2, 3, 4, 5, 6, 7, 8, 9}; - // for each loop structure => for ( : ) - // reads as: for each object in the array - // note: the object type must match the array. + // for each loop structure => for ( : ) + // reads as: for each element in the collection + // note: the object type must match the element type of the collection. for (int bar : fooList) { System.out.println(bar); -- cgit v1.2.3 From 8c3a0be856770aab3484e48cd1d1c11162b72db4 Mon Sep 17 00:00:00 2001 From: Simon Morgan Date: Tue, 26 May 2015 20:21:43 +0100 Subject: Further improve for loop description. --- java.html.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 7ab22823..928eb39f 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -228,9 +228,9 @@ public class LearnJava { // The for loop is also able to iterate over arrays as well as objects // that implement the Iterable interface. int[] fooList = {1, 2, 3, 4, 5, 6, 7, 8, 9}; - // for each loop structure => for ( : ) - // reads as: for each element in the collection - // note: the object type must match the element type of the collection. + // for each loop structure => for ( : ) + // reads as: for each element in the iterable + // note: the object type must match the element type of the iterable. for (int bar : fooList) { System.out.println(bar); -- cgit v1.2.3 From 8e388cd3344b90cfdc02741359850a2352a8f9b7 Mon Sep 17 00:00:00 2001 From: Dhwani Shah Date: Fri, 2 Oct 2015 14:30:45 -0500 Subject: Added section on how to declare and initialize both single varible and multiple varibles with the same value. Important concept for large structured programs. Seperated this a little bit. --- java.html.markdown | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 928eb39f..0f5b39af 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -47,10 +47,30 @@ public class LearnJava { /////////////////////////////////////// - // Types & Variables + // Variables /////////////////////////////////////// - + + /* + * Variable Declaration + */ // Declare a variable using + int fooInt; + // Declare multiple variables of same type , , + int fooInt1, fooInt2, fooInt3; + + /* + * Variable Initialization + */ + + // Initialize a variable using = + int fooInt = 1; + // Initialize multiple variables of same type with same value , , = + int fooInt1, fooInt2, fooInt3; + fooInt1 = fooInt2 = fooInt3 = 1; + + /* + * Variable types + */ // Byte - 8-bit signed two's complement integer // (-128 <= byte <= 127) byte fooByte = 100; -- cgit v1.2.3 From 231cd629cab3553d126f8cca04a034c995c4668f Mon Sep 17 00:00:00 2001 From: Dhwani Shah Date: Fri, 2 Oct 2015 14:45:25 -0500 Subject: Update java.html.markdown --- java.html.markdown | 104 ++++++++--------------------------------------------- 1 file changed, 14 insertions(+), 90 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 0f5b39af..745741f8 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -1,18 +1,3 @@ ---- -language: java -contributors: - - ["Jake Prather", "http://github.com/JakeHP"] - - ["Jakukyo Friel", "http://weakish.github.io"] - - ["Madison Dickson", "http://github.com/mix3d"] - - ["Simon Morgan", "http://sjm.io/"] -filename: LearnJava.java ---- - -Java is a general-purpose, concurrent, class-based, object-oriented computer -programming language. -[Read more here.](http://docs.oracle.com/javase/tutorial/java/) - -```java // Single-line comments start with // /* Multi-line comments look like this. @@ -47,30 +32,10 @@ public class LearnJava { /////////////////////////////////////// - // Variables + // Types & Variables /////////////////////////////////////// - - /* - * Variable Declaration - */ - // Declare a variable using - int fooInt; - // Declare multiple variables of same type , , - int fooInt1, fooInt2, fooInt3; - /* - * Variable Initialization - */ - - // Initialize a variable using = - int fooInt = 1; - // Initialize multiple variables of same type with same value , , = - int fooInt1, fooInt2, fooInt3; - fooInt1 = fooInt2 = fooInt3 = 1; - - /* - * Variable types - */ + // Declare a variable using // Byte - 8-bit signed two's complement integer // (-128 <= byte <= 127) byte fooByte = 100; @@ -437,26 +402,26 @@ class PennyFarthing extends Bicycle { // Example - Food: public interface Edible { - public void eat(); // Any class that implements this interface, must + public void eat(); // Any class that implements this interface, must // implement this method. } public interface Digestible { - public void digest(); + public void digest(); } // We can now create a class that implements both of these interfaces. public class Fruit implements Edible, Digestible { @Override - public void eat() { - // ... - } + public void eat() { + // ... + } @Override - public void digest() { - // ... - } + public void digest() { + // ... + } } // In Java, you can extend only one class, but you can implement many @@ -464,51 +429,10 @@ public class Fruit implements Edible, Digestible { public class ExampleClass extends ExampleClassParent implements InterfaceOne, InterfaceTwo { @Override - public void InterfaceOneMethod() { - } + public void InterfaceOneMethod() { + } @Override - public void InterfaceTwoMethod() { - } + public void InterfaceTwoMethod() { + } } -``` - -## Further Reading - -The links provided here below are just to get an understanding of the topic, feel free to Google and find specific examples. - -**Official Oracle Guides**: - -* [Java Tutorial Trail from Sun / Oracle](http://docs.oracle.com/javase/tutorial/index.html) - -* [Java Access level modifiers](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.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) - -* [Interfaces](http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html) - -* [Generics](http://docs.oracle.com/javase/tutorial/java/generics/index.html) - -* [Java Code Conventions](http://www.oracle.com/technetwork/java/codeconv-138413.html) - -**Online Practice and Tutorials** - -* [Learneroo.com - Learn Java](http://www.learneroo.com) - -* [Codingbat.com](http://codingbat.com/java) - - -**Books**: - -* [Head First Java](http://www.headfirstlabs.com/books/hfjava/) - -* [Thinking in Java](http://www.mindview.net/Books/TIJ/) - -* [Objects First with Java](http://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660) - -* [Java The Complete Reference](http://www.amazon.com/gp/product/0071606300) -- cgit v1.2.3 From c7240369b6465f2a736cb61d1bff89c971e76929 Mon Sep 17 00:00:00 2001 From: Dhwani Shah Date: Fri, 2 Oct 2015 14:47:17 -0500 Subject: Update java.html.markdown --- java.html.markdown | 80 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 68 insertions(+), 12 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 745741f8..928eb39f 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -1,3 +1,18 @@ +--- +language: java +contributors: + - ["Jake Prather", "http://github.com/JakeHP"] + - ["Jakukyo Friel", "http://weakish.github.io"] + - ["Madison Dickson", "http://github.com/mix3d"] + - ["Simon Morgan", "http://sjm.io/"] +filename: LearnJava.java +--- + +Java is a general-purpose, concurrent, class-based, object-oriented computer +programming language. +[Read more here.](http://docs.oracle.com/javase/tutorial/java/) + +```java // Single-line comments start with // /* Multi-line comments look like this. @@ -402,26 +417,26 @@ class PennyFarthing extends Bicycle { // Example - Food: public interface Edible { - public void eat(); // Any class that implements this interface, must + public void eat(); // Any class that implements this interface, must // implement this method. } public interface Digestible { - public void digest(); + public void digest(); } // We can now create a class that implements both of these interfaces. public class Fruit implements Edible, Digestible { @Override - public void eat() { - // ... - } + public void eat() { + // ... + } @Override - public void digest() { - // ... - } + public void digest() { + // ... + } } // In Java, you can extend only one class, but you can implement many @@ -429,10 +444,51 @@ public class Fruit implements Edible, Digestible { public class ExampleClass extends ExampleClassParent implements InterfaceOne, InterfaceTwo { @Override - public void InterfaceOneMethod() { - } + public void InterfaceOneMethod() { + } @Override - public void InterfaceTwoMethod() { - } + public void InterfaceTwoMethod() { + } } +``` + +## Further Reading + +The links provided here below are just to get an understanding of the topic, feel free to Google and find specific examples. + +**Official Oracle Guides**: + +* [Java Tutorial Trail from Sun / Oracle](http://docs.oracle.com/javase/tutorial/index.html) + +* [Java Access level modifiers](http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.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) + +* [Interfaces](http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html) + +* [Generics](http://docs.oracle.com/javase/tutorial/java/generics/index.html) + +* [Java Code Conventions](http://www.oracle.com/technetwork/java/codeconv-138413.html) + +**Online Practice and Tutorials** + +* [Learneroo.com - Learn Java](http://www.learneroo.com) + +* [Codingbat.com](http://codingbat.com/java) + + +**Books**: + +* [Head First Java](http://www.headfirstlabs.com/books/hfjava/) + +* [Thinking in Java](http://www.mindview.net/Books/TIJ/) + +* [Objects First with Java](http://www.amazon.com/Objects-First-Java-Practical-Introduction/dp/0132492660) + +* [Java The Complete Reference](http://www.amazon.com/gp/product/0071606300) -- cgit v1.2.3 From 63793af2e955f8a8abe698c4a70809cfbff63452 Mon Sep 17 00:00:00 2001 From: Dhwani Shah Date: Fri, 2 Oct 2015 14:54:09 -0500 Subject: Added section on how to declare and initialize both single varible and multiple varibles with the same value. Important concept for large structured programs. Seperated this a little bit. --- java.html.markdown | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 928eb39f..1aa06570 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -47,10 +47,30 @@ public class LearnJava { /////////////////////////////////////// - // Types & Variables + // Variables /////////////////////////////////////// - + + /* + * Variable Declaration + */ // Declare a variable using + int fooInt; + // Declare multiple variables of the same type , , + int fooInt1, fooInt2, fooInt3; + + /* + * Variable Initialization + */ + + // Initialize a variable using = + int fooInt = 1; + // Initialize multiple variables of same type with same value , , = + int fooInt1, fooInt2, fooInt3; + fooInt1 = fooInt2 = fooInt3 = 1; + + /* + * Variable types + */ // Byte - 8-bit signed two's complement integer // (-128 <= byte <= 127) byte fooByte = 100; -- cgit v1.2.3 From 6b6f88c64d9a4b2d26de5725dee24f3c459fb93c Mon Sep 17 00:00:00 2001 From: bk2dcradle Date: Sun, 4 Oct 2015 01:47:09 +0530 Subject: Added abstract classes --- java.html.markdown | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 928eb39f..2f41be81 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -451,6 +451,74 @@ public class ExampleClass extends ExampleClassParent implements InterfaceOne, public void InterfaceTwoMethod() { } } + + +// Abstract Classes +// Abstract Class declaration syntax +// abstract extends { +// // Constants and variables +// // Method declarations +// } + +// Methods can't have bodies in an interface, unless the method is +// static. Also variables are NOT final by default, unlike an interface. +// Also abstract classes CAN have the "main" method. +// Abstract classes solve these problems. + +public abstract class Animal +{ + 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 initialise, however in an interface + // a variable is implicitly final and hence has + // to be initialised. + 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"); + } +} + +class Dog extends Animal +{ + // 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(); + } +} + ``` ## Further Reading -- cgit v1.2.3 From d8efd3ba3416669177683887b2822eb5d56c157b Mon Sep 17 00:00:00 2001 From: bk2dcradle Date: Mon, 5 Oct 2015 01:38:02 +0530 Subject: Modified as said to by a Collaborator --- java.html.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 2f41be81..89a710ee 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -477,9 +477,9 @@ public abstract class Animal age = 30; } - // No need to initialise, however in an interface + // No need to initialize, however in an interface // a variable is implicitly final and hence has - // to be initialised. + // to be initialized. private int age; public void printAge() @@ -509,7 +509,7 @@ class Dog extends Animal // @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/) + // Check out this awesome SO post: http://stackoverflow.com/questions/16313649/ public static void main(String[] args) { Dog pluto = new Dog(); -- cgit v1.2.3 From 8b456426407997fdbb8a0befb4181a513e585231 Mon Sep 17 00:00:00 2001 From: Per Lilja Date: Mon, 5 Oct 2015 20:29:05 +0200 Subject: Added description for Double Brace Initialization --- java.html.markdown | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index e4234a39..b4757962 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -325,6 +325,33 @@ 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 COUNTRIES = new HashSet(); + 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, buy using something that is called Double Brace + // Initialization. + + private static final Set COUNTRIES = HashSet() {{ + add("DENMARK"); + add("SWEDEN"); + 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. + // This does not only work for Collections, it works for all + // non-final classes. } // End main method } // End LearnJava class -- cgit v1.2.3 From 9b0877f7ebb7a73deed0c6aea40102f4abec586d Mon Sep 17 00:00:00 2001 From: Levi Bostian Date: Tue, 6 Oct 2015 09:36:03 -0500 Subject: Update java en file to fix small typo `buy` to `by` --- java.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index b4757962..478ec683 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -338,7 +338,7 @@ public class LearnJava { } // But there's a nifty way to achive the same thing in an - // easier way, buy using something that is called Double Brace + // easier way, by using something that is called Double Brace // Initialization. private static final Set COUNTRIES = HashSet() {{ -- cgit v1.2.3 From 960ee4a1856db8eadb96277bb2422edfa8f2a81c Mon Sep 17 00:00:00 2001 From: Gabriel Halley Date: Wed, 7 Oct 2015 23:11:24 -0400 Subject: removing whitespace all over --- java.html.markdown | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'java.html.markdown') diff --git a/java.html.markdown b/java.html.markdown index 478ec683..fc7948d6 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -47,9 +47,9 @@ public class LearnJava { /////////////////////////////////////// - // Variables + // Variables /////////////////////////////////////// - + /* * Variable Declaration */ @@ -325,29 +325,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 COUNTRIES = new HashSet(); 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 COUNTRIES = HashSet() {{ 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 @@ -500,7 +500,7 @@ public class ExampleClass extends ExampleClassParent implements InterfaceOne, } -// Abstract Classes +// Abstract Classes // Abstract Class declaration syntax // abstract extends { // // Constants and variables @@ -512,26 +512,26 @@ public class ExampleClass extends ExampleClassParent implements InterfaceOne, // Also abstract classes CAN have the "main" method. // Abstract classes solve these problems. -public abstract class Animal +public abstract class Animal { public abstract void makeSound(); // Method can have a body public void eat() { - System.out.println("I am an animal and I am Eating."); + 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 + // 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); + System.out.println(age); } // Abstract classes can have main function. @@ -552,7 +552,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. -- cgit v1.2.3