# [Tutorial]Java #1

## Recommended Posts

Tutorial Color

Yellow........Question

Lime Green...........Examples

Green..........A term, see bottom of post for definition

Orange.........A literal

Primitive Data Types

We have byte, short, int, long, float, double, boolean and char.

For the sake of simplicity, I'll stick with: int, float, boolean and char.

int:We use int if we're storing normal whole integers between -2,147,483,648 and 2,147,483,648* If a decimal number is

stored in an int, the decimal part of the number will be cut off.

*: Integer ranges from here

NOTE: A common misunderstanding is that the decimal number will be rounded. This is not the case! The decimal part will simply cut right off.

Example:

15.5 becomes 15, 9.9 becomes

9. and so on.

float:A float can store decimal numbers. And for the sake of simplicity, nothing more will be said. :)

boolean: A boolean is either true or false.

char: A char is a single character.

Where's String?

String is not a primitive data type; String is actually a class.

Variables

I really do hope you know what a variable is. :(

I'll offer a brief explanation of variables.

A variable consists of a data type, an identifier, and a value.

Example:

`int number = 1;`

int being the data type, number being the identifier, and 1 being the value.

Operators

I'll be sticking with the simple operators.

+, -, *, /, %, +=, -=, *=, ++, --

Mathematical Operators

+: The addition operator. variable = variable + 1;

-: The subtraction operator. variable = variable - 1;

*: The multiplication operator. variable = variable * 2;

/: The division operator. variable = variable / 2;

%: The modulus operator. (Explained below) evenNumber = number % 2

+=: This operator adds specified value to variable given. variable += 2

-=: This operator subtracts specified value to varaible given. [i[variable -= 2[/i]

*=: This operator multiplies variable by specified value. variable *= 2

++: This operator increments variable by one. variable++

--: This operator decrements variable by one. [/i]variable--[/i]

The modulus operator(%):

People tend to get confused with this one. The modulus operator returns the remainder of division.

5 % 2 returns the remainder of 5 / 2... which is 1.

Logical Operators

!: This is the not logical operator. It returns true if a value does not equal another and false if it does.

==: This the the equal to operator. It returns true if a value equals another and false if it does not.

<: This is the less than operator. It returns true if the right operand is greater than the left, and left less than the right.

>: The greater than operator. Opposite of less than.

<=: The less than or equal to operator. Returns true if the right hand operand is less than OR equal to the left.

>=: The greater than or equal to operator. Opposite of less than or equal to operator.

!=: The not equal to operator. Returns true if the left operand is not equal to the right, and false otherwise.

&&: The && operator tests two expressions. If both are true, true is returned. If one is false, one true, false is returned.

||: The || operator tests two expressions. If one is true, true is returned.

Comments are used to describe your code. Let me emphasize on the word describe.

When we use a comment, we are trying to describe what the statement does, without simply repeating it in a comment.

Comments are completely ignored by the compiler, and are not compiled with it; therefore, more comments will not make the compiled result larger.

How do I use comments? When?

You use either // or /* */. // will comment out everything on the same line, after //.

First, the single line comment.

`int a = 0; // comment`

This will comment out everything after // only on the that line. It will not affect the variable declaration.

`// int a = 0; comment`

This will comment out the whole line.

And now the multi-line comment.

Multi-line comments start at /* and end at */

```/* comment */
int a; /* Hi!!!
Coolis
Coolis bla bla bla */```

The second and third lines are also commented here.

As for when you comment, that is completely up to you. :)

The basic structure you will use most of the time is:

```public class MyJavaApplication
{
public static void main(String [] args)
{
// stuff stuff
}
}```

You start by naming your class. In this example its name is MyJavaApplication.

Within your class, you will have a main method. This is required for the program to run.

The main method is where most of your code will be (unless you're doing OOP, of course).

Basic Output

We use the System.out.print and System.out.print ln methods to display text in the console.

Example:

```public class MyJavaApplication
{
public static void main(String [] args)
{
// output "Hello World\n"
System.out.println("Hello World");
}
}```

This is the classic Hello World application. I do not think you should comment things like that, as anyone reading your source should have the ability to comprehend

System.out.println, but for this tutorial, I'll be commenting often. :)

Difference between System.out.print and System.out.println?

System.out.println adds a line break to the end of the line, System.out.print does not.

```System.out.print("Hello World\n");
is equivalent to
System.out.println("Hello World");```

Basic Input/Output From User

We now know how to output to the console; however, we know nothing of inputting from the user yet.

We will be using the Scanner class to input from the user.

This will be the first object you'll use, too! :D

First, Scanner comes from the java.util package. Because of this, we'll need to include the Scanner class to use it.

How?

```import java.util.Scanner;
public class MyJavaApplication
{
public static void main(String [] args)
{
// stuff stuff
}
}```

You will use import to import the package and do this above your class. Simple, right? :)

Now, to create an instance of Scanner

```import java.util.Scanner;
public class MyJavaApplication
{
public static void main(String [] args)
{
Scanner keyboard = new Scanner(System.in);
}
}```

We use Scanner as the data type and new to create an object of Scanner. keyboard is our identifier here.

Why 'keyboard'?

When we input an integer, it will make more sense for beginners. :)

Example of inputting a number:

```import java.util.Scanner;
public class MyJavaApplication
{
public static void main(String [] args)
{
// instantiate Scanner object
Scanner keyboard = new Scanner(System.in);

// our variable to store user input
int userInput;

// store the input into userInput
userInput = keyboard.nextInt();
}
}```

The third line is where your focus should be. We invoke all public methods of an object with dot notation.

In this case, we have the non-static method nextInt().

nextInt() reads an integer from the user.

The only problem is, the user will be presented with just a black screen and expected to input something.

```public class MyJavaApplication
{
public static void main(String [] args)
{
// instantiate Scanner object
Scanner keyboard = new Scanner(System.in);

// our variable to store user input
int userInput;

// display prompt
System.out.print("Input an integer: ");

// store the input into userInput
userInput = keyboard.nextInt();
}
}```

Notice the usage of System.out.print, rather than println.

Why?

Prompt with System.out.print

`Input an integer: _`

Prompt with System.out.println

```Input an integer:
_```

Using System.out.println would bring the input down a line, making the prompt look ugly.

We may want to manipulate the integer we input and output it back to the user.

```import java.util.Scanner;
public class MyJavaApplication
{
public static void main(String [] args)
{
// instantiate Scanner object
Scanner keyboard = new Scanner(System.in);

// our variable to store user input
int userInput;

// display prompt
System.out.print("Input an integer: ");

// store the input into userInput
userInput = keyboard.nextInt();

// add one to the integer, twice
userInput += 1;
userInput++;

// output integer back to the user
}
}```

In the above example, we use two methods to add one to the number. They work the same.

We then output the integer back to the user.

"Your number: " + useriInput will add that integer to the end of the output string.

Practice this using all of the mathematical operators. When you feel you understand, continue reading. :)

Control Structures

Now that you have a basic understanding of input/output, we will discuss control structures.

The If statement

The If statement is the most commonly used flow control statement, and is where logic comes in.

In short, an If statement tests an expression and returns a boolean value.

```So,
if (expression)
...doThis
else
...doThat```

If our expression is: 5 == 1, the if statement would obviously return false.

When our if statement returns false, if the else statement is present, that will be executed instead.

So, as you may have guessed, the else statement containing "doThat" was executed, because the expression was false.

```import java.util.Scanner;
public class MyJavaApplication
{
public static void main(String [] args)
{
// instantiate Scanner object
Scanner keyboard = new Scanner(System.in);

// our variable to store user input
int userInput;

// display prompt
System.out.print("Input an integer: ");

// store the input into userInput
userInput = keyboard.nextInt();

// check if user entered 50
if (userInput == 50)
System.out.println("You entered 50, yay.");
else
System.out.println("You did not enter 50. :(");
}
}```

In this example, we check if the user entered 50.

If the user entered 50, we will output "You entered 50, yay."

If not, we'll tell them they did not with a sad face to guilt trip them. ;)

You can have more complex If statements, where you test two expressions.

```if (var1 == 2 && var2 == 2)
...doThis();
else
...doThat();```

If both var1 and var2 are equal to 2, doThis() is executed. Otherwise, if one or both of the expressions are false, doThat() is executed.

You can test for either/or, too.

```if (var1 == 2 || var2 == 2)
...doThis();
else
...doThat();```

If var1 is equal to 2 OR var2 is equal to 2, we execute doThis(), otherwise, we execute doThat().

Braces

We add braces to our flow control statements when they contain more than one line of code.

```if (number == 1)
{
number++;
System.out.println(number);
}
else
number--;```

Our If has two lines of code, which is more than 1; thus, we add braces.

Our else has only one line of code, so we use no braces.

You can use braces on one line of code if you'd like, but I consider it an eyesore to see them around one line of code.

Switch Statement

Sometimes you may prefer using a Switch statement instead of an if statement.

A Switch statement is setup like so:

```switch(variable)
{
case value : doThis; break;
case value2: doThis; break;
case value3: doThis; break;
case value4:
case value5: doThis; break;
default: doThat; break;
}```

The first line in the body of the switch tests if variable is equal to value.

If so, it will execute doThis and break.

You need a break statement after every case to separate the different cases.

Notice the 4th line of the switch's body. This tests if the variable is equal to value4, and if it is, it falls through.

It then tests if variable is equal to value 5, too. Almost like "&&" in an if statement.

If Switch statements remain unclear to you, I will consider revising this portion of my tutorial. :)

[move]______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________[/move]

Loops

Loops are another large part of programming. You will find times where it would be useful to loop.

The While Loop

The while loop is used when you do not know how many times you are going to loop.

An example would be allowing a user to enter an arbitrary amount of numbers until that user decides they do not want to enter any more.

There will be a value they can enter to stop entering number and exit the program.

That would be implemented like so:

```import java.util.Scanner;
public class MyJavaApplication
{
public static void main(String [] args)
{
// instantiate Scanner object
Scanner keyboard = new Scanner(System.in);

// our variable to store user input
int userInput;

// display prompt
System.out.print("Input an integer: ");

// store the input into userInput
userInput = keyboard.nextInt();

// while the user still wants to enter numbers...
while (userInput != -1)
{
// display user's number
System.out.println("You entered: " + userInput);

// get another number
System.out.print("Enter another number or -1 to quit: ");
userInput = keyboard.nextInt();
}

System.out.println("Have a nice day.");
}
}
```

We first input a number from the user to start the loop off.

The first line of the while loop tests whether or not the user wants to quit.

I use -1 as my sentinel value here, since it's hard to accidentally hit -1.

We input the next number from the user to continue the loop.

This will go on forever until the user finall enters "-1" to quit.

When the loop finally ends, we tell the user to have a nice day and the program then ends.

The For Loop

Unllike the While loop, the For loop is used when we know how many times we are going to loop.

The For loop is typically executed like so: for (set; condition; action)

for (int i = 0; i < 10; i++)

We set i (Index) to 0. Our condition for this loop to remain active is that i stays less than 10.

Our action is incrementing i by one each run through the loop.

The body of our for loop will be executed each time i is less than 10.

After the body is executd, we add 1 to i. So our For loop's body will be executed 10 times.

This would be implemented like so:

```import java.util.Scanner;
public class MyJavaApplication
{
public static void main(String [] args)
{
// instantiate Scanner object
Scanner keyboard = new Scanner(System.in);

// our variable to store user input
int userInput;

// display prompt
System.out.print("Input an integer: ");

// store the input into userInput
userInput = keyboard.nextInt();

// start the for loop here
for (int i = 0; i < 10; i++)
{
userInput += i;
System.out.print(userInput + ", ");
}

System.out.println("Have a nice day.");
}
}```

Each pass through our For loop, we'll add i to the user's number, and then display the number.

We will do this exactly 10 times.

The Do..While Loop

I don't think this loop is useful,(Loop Useless) and I don't think anyone should use it, to be honest.

I don't believe in forcing the user into a loop; I'll be skipping this one.

Constants

I realize it may be a strange time to mention constants, and am sorry if it bothers you. :)

A constant?

A constant is basically a read-only variable.

You initialize this constant and it cannot be changed afterwards.

It is intialized the same as a variable, but with final before the data type.

Example:

`final int constant = 10;`

Constants are good for:

• Easier debugging
• Easier code management

While it is a little extreme to replace every literal with a constant, you should use one if you're using the same value over and over again.

Take Rock, Paper, Scissors for example. Is it easier to read:

```if (choice == 0)
// action
else if (choice == 1)
// action
else
// action```

```if (choice == ROCK)
// action
else if (choice == PAPER)
// action
else
// action```

I'll let you decide on this one. ;)

Another example would be a keylogger. If you're designing a keylogger in C++, you would likely use GetAsyncKeyState().

We know it returns -32767 if the key passed to GetAsyncKeyState() is pressed.

So, which is easier on your eyes?

```const int PRESSED = -32767;

if (GetAsyncKeyState(key) == PRESSED)
saveKey(key);```

or

```if (GetAsyncKeyState(key) == -32767)
saveKey(key);```

I think you get my point. :)

Terms

Literal: A hardcoded value.

[move]________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________[/move]

*Please give me critical feedback. I have NOT proof read this, so please, please tell me if you spot any typos or mistakes

*Tutorial was writed about 3-4 hours by me and my friend programer(hackforum)

*I hope this tutorial helps anyone in some way. :) Took some time.

##### Share on other sites

nice one +1 karma for the effort

##### Share on other sites

Really really nice. I didn't think that someone would ever have the patience to write such a text. Good job! You deserve +1 that's for sure.

##### Share on other sites

Yeap, nice guide mate, keep it up.

Btw i will start to learn.

##### Share on other sites

It's a good start to make own corrections to l2j.

Waiting for #2.

##### Share on other sites

It's a good start to make own corrections to l2j.

Waiting for #2.

##### Share on other sites

• 1 month later...

you forgot at comments the:  /** comment */

##### Share on other sites

1) where are the bitwise operators =) ?

2) Whats this effor of building a tutorial alredy existent? (and more complete)

I mean, your work is nice, but theres alredy a official tutorial

##### Share on other sites

• 1 month later...

Now you edit the post and you give credits.

btw it isn't yours.

Who want the link of real Topic PM Me ;)

someone remove the karma .

Edit : the same Here

very nice guide

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×

• ### Posts

• Hi, my client version is Classic Kamael.   I build up the story line gradually with the option to turn different parts of the story on and off.   I mean you start a server and you only have The Kamael classic. As an admin, you will be able to gradually enable additional zones, RBs, items, instances, etc. through configs, up to Hi5 (I only have hi5 for now). Sometime in the future I want to add the GoD stuff as well because the new RB is strong and the regular S grade stuff is weak. Of course, there are some limitations of the game client, which I will not remove yet.   For example, I couldn't put Rafforty NPC on hi5 position because you can't get it here and there in the Classic client, so I put it on others.   It's a change that I like.   I'm most looking forward to coming up with zones, quests and instances for Gracia.
• Hello. If you are looking for a reliable writing company that can provide a high level of service and high quality writing, then I recommend you to visit Essay Pro review https://nocramming.com/essaypro-review, where you can make sure for yourself that this company can be the best assistant in your difficult studies. The company's review is objective and easy to understand, which will help any user to quickly understand the information.
• Why not making hi5 files to support login/play at the client and only make some client parts for the rest? Isnt it more easy?
• Powerful Spells Caster & Spiritual Healer Web: lovespellsafrika.com Phone: +27780802727 WhatsApp +27789121499 Email: bbaantu@gmail.com Real Magic Spells | How To Get Back Ex-Boyfriend or Ex-Girlfriend. Real Magic Spells for all purpose; Now you can benefit through the use of spells like Love Spells, Money Spells, Talismans, Charms, Prayers, Curses and Chants. Magic Spells can be spell cast for many purposes. Talismans and Charms work as powerful Ingredients. If you need any spiritual knowledge on the power of Spells and Magic you can always Powerful Magic Rings Love Spells                     Casting of Simple and Effective Love Spells Easy Love Spells Spells for Attraction between two Lovers Binding Love Spells Get back Lost Lover Spells Spells to Strengthen Love Relation Lost Love Spells Soul Mate Spells Marriage Spell for a happy Married Life. Retrieve a Lost Love Spells Bring Back Your Love Spells Gay Love Spells, Lesbian Love Spells Anti-Love Spells, Divorce Spells, Break up Spells How to Get Back Ex-Boyfriend, or Ex-Girlfriend Casting Spells to Get Rid of Your Husband, Wife or Partner without Fights or them hating you Magic Rings, Powerful Love Rings Spells to stop a divorce Voodoo Spells for Love Love Return Spells Money & Prosperity Spells Phone: +27780802727 WhatsApp +27789121499 How to Cast Magic Money Spells Lottery Spells or Lotto Spells Voodoo Spells for Money Black Magic Spell for Money Protection & Banishing Spells Black Magic Spells and Curses to Destroy Enemy or Evil People Protection from Black Magic Spells and Curses Dark Magic Spells Voodoo Spells for Revenge Spells to win court cases &legal matters Healing spells for all purpose Stroke Diabetics Lottery Spells Phone: +27780802727 WhatsApp: +27789121499 Web: lovespellsafrika.com
• ### Topics

×
×
• Create New...