java cơ bản java co ban

39
Introduction to Java Programming Y. Daniel Liang Edited by Hoàng Văn Hậu – VTC Academy – THSoft co.,ltd https://play.google.com/store/apps/developer? id=THSoft+Co.,Ltd

Upload: ifis

Post on 26-May-2015

310 views

Category:

Technology


0 download

DESCRIPTION

Java cơ bản, b

TRANSCRIPT

Page 1: Java cơ bản java co ban

Introduction toJava Programming

Y. Daniel LiangEdited by Hoàng Văn Hậu – VTC Academy – THSoft co.,ltd

https://play.google.com/store/apps/developer?id=THSoft+Co.,Ltd

Page 2: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 2

Introduction

Course Objectives Organization of the Book

Page 3: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 3

Course Objectives Upon completing the course, you will understand

– Create, compile, and run Java programs

– Primitive data types

– Java control flow

– Methods– Arrays (for teaching Java in two semesters, this could be the end)

– Object-oriented programming

– Core Java classes (Swing, exception, internationalization, multithreading, multimedia, I/O, networking, Java Collections Framework)

Page 4: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 4

Course Objectives, cont.

You will be able to – Develop programs using Eclipse IDE– Write simple programs using primitive data

types, control statements, methods, and arrays.– Create and use methods– Write interesting projects

Page 5: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 5

Session 03: Method and Class

Methods Object-Oriented Programming Classes Packages Subclassing and Inheritance Polymorphism

Page 6: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 6

Introducing Methods

Method StructureA method is a collection of statements that are grouped together to perform an operation.

Page 7: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 7

Introducing Methods, cont.•parameter profile refers to the type, order, and number of the parameters of a method.

•method signature is the combination of the method name and the parameter profiles.

•The parameters defined in the method header are known as formal parameters.

•When a method is invoked, its formal parameters are replaced by variables or data, which are referred to as actual parameters.

Page 8: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 8

Declaring Methods

public static int max(int num1, int num2) {

if (num1 > num2) return num1; else return num2;}

Page 9: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 9

Calling Methods, cont.

public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }

public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }

pass i pass j

Page 10: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 10

Calling Methods, cont.

The main method i: j: k:

The max method num1: num2: result:

pass 5

5

2

5

5

2

5

pass 2 parameters

Page 11: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 11

CAUTION

A return statement is required for a nonvoid method. The following method is logically correct, but it has a compilation error, because the Java compiler thinks it possible that this method does not return any value. public static int xMethod(int n) { if (n > 0) return 1; else if (n == 0) return 0; else if (n < 0) return –1; }

To fix this problem, delete if (n<0) in the code.

Page 12: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 12

Actions on Eclipse

Open Eclipse IDE– Create project: Session3Ex– Create package: com.vtcacademy.exopp– Create java class: Ex3WithOpp.java (with main method)– Create java class: Circle.java

RunRunSourceSource

Page 13: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 13

The Math Class Class constants:

– PI– E

Class methods: – Trigonometric Methods – Exponent Methods– Rounding Methods– min, max, abs, and random Methods

Page 14: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 14

Trigonometric Methods

sin(double a)

cos(double a)

tan(double a)

acos(double a)

asin(double a)

atan(double a)

Page 15: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 15

Exponent Methods exp(double a)

Returns e raised to the power of a.

log(double a)

Returns the natural logarithm of a.

pow(double a, double b)

Returns a raised to the power of b.

sqrt(double a)

Returns the square root of a.

Page 16: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 16

Rounding Methods double ceil(double x)

x rounded up to its nearest integer. This integer is returned as a double value.

double floor(double x)x is rounded down to its nearest integer. This integer is returned as a double value.

double rint(double x)x is rounded to its nearest integer. If x is equally close to two integers, the even one is returned as a double.

int round(float x)Return (int)Math.floor(x+0.5).

long round(double x)Return (long)Math.floor(x+0.5).

Page 17: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 17

min, max, abs, and random

max(a, b)and min(a, b)Returns the maximum or minimum of two parameters.

abs(a)Returns the absolute value of the parameter.

random()Returns a random double valuein the range [0.0, 1.0).

Page 18: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 18

Example 3.1 Computing Mean and Standard Deviation

Generate n random numbers and compute the mean and standard deviation

n

xmean

n

ii

1

1

)(

1

2

12

nn

xx

deviation

n

i

n

ii

i

Page 19: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 19

Example 3.2 Obtaining Random Characters

Write the methods for generating random characters. The program uses these methods to generate 175 random characters between ‘!' and ‘~' and displays 25 characters per line. To find out the characters between ‘!' and ‘~', see Appendix B, “The ASCII Character Set.”

Page 20: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 20

OO Programming Concepts

data field 1

method n

data field n

method 1

An object

...

...

State

Behavior

Data Field radius = 5

Method findArea

A Circle object

Page 21: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 21

Class and Objects

circle1: Circle

radius = 2

new Circle()

circlen: Circle

radius = 5

new Circle()

...

UML Graphical notation for classes

UML Graphical notation for objects

Circle

radius: double

findArea(): double

UML Graphical notation for fields

UML Graphical notation for methods

Illustration on code

Page 22: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 22

Class Declaration

class Circle { double radius = 1.0;

double findArea(){ return radius * radius * 3.14159; }}

Page 23: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 23

Declaring Object Reference Variables

ClassName objectReference;

Example:Circle myCircle;

Page 24: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 24

Creating Objects

objectReference = new ClassName();

Example:myCircle = new Circle();

The object reference is assigned to the object reference variable.

Page 25: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 25

Declaring/Creating Objectsin a Single Step

ClassName objectReference = new ClassName();

Example:Circle myCircle = new Circle();Circle myCircle2;

Page 26: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 26

Constructors

Circle(double r) { radius = r;}

Circle() { radius = 1.0; }

myCircle = new Circle(5.0);

Constructors are a special kind of methods that are invoked to construct objects.

Page 27: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 27

Constructors

Circle(double r) { radius = r;}

Circle() { radius = 1.0; }

myCircle = new Circle(5.0);

Constructors are a special kind of methods that are invoked to construct objects.

Page 28: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 28

Constructors, cont.A constructor with no parameters is referred to as a default constructor.

       Constructors must have the same name as the class itself.

       Constructors do not have a return type—not even void.

       Constructors are invoked using the new operator when an object is created. Constructors play the role of initializing objects.

Page 29: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 29

Example 3.3 Using Classes from the Java Library

Objective: Demonstrate using classes from the Java library. Use the JFrame class in the javax.swing package to create two frames; use the methods in the JFrame class to set the title, size and location of the frames and to display the frames.

Illustration on code

Page 30: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 30

Subclassing and Inheritance

private None protected Public

Illustration on code

Page 31: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 31

Example 3.4

Shape

TwoDimensionalShape ThreeDimensionalShape

Circle Square Triangle Sphere Cube Tetrahedron

Page 32: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 32

Example 3.4

http://blogs.unsw.edu.au/comp1400/blog/2011/09/tut-10/

Page 33: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 33

Abstract Classes and Methods

Abstract classes – Are superclasses (called abstract superclasses)– Cannot be instantiated – Incomplete

subclasses fill in "missing pieces"

Concrete classes– Can be instantiated– Implement every method they declare– Provide specifics

Page 34: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 34

Abstract Classes and Methods (Cont.)

Abstract classes not required, but reduce client code dependencies

To make a class abstract– Declare with keyword abstract– Contain one or more abstract methods

public abstract void draw();

– Abstract methods No implementation, must be overridden

Page 35: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 35

Abstract Classes and Methods (Cont.)

Application example– Abstract class Shape

Declares draw as abstract method

– Circle, Triangle, Rectangle extends Shape Each must implement draw

– Each object can draw itself

Iterators– Array, ArrayList (Chapter 22)

– Walk through list elements

– Used in polymorphic programming to traverse a collection

Illustration on code

Page 36: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 36

Case Study: Creating and Using Interfaces

Use interface Shape– Replace abstract class Shape

Interface– Declaration begins with interface keyword

– Classes implement an interface (and its methods)

– Contains public abstract methods Classes (that implement the interface) must implement

these methods

Page 37: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 37

1 // Fig. 10.18: Shape.java

2 // Shape interface declaration.

3

4 public interface Shape {

5 public double getArea(); // calculate area

6 public double getVolume(); // calculate volume

7 public String getName(); // return shape name

8

9 } // end interface Shape

Lines 5-7Classes that implement Shape must implement these methods

Page 38: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 38

1 // Fig. 10.19: Point.java

2 // Point class declaration implements interface Shape.

3

4 public class Point extends Object implements Shape {

5 private int x; // x part of coordinate pair

6 private int y; // y part of coordinate pair

7

8 // no-argument constructor; x and y default to 0

9 public Point()

10 {

11 // implicit call to Object constructor occurs here

12 }

13

14 // constructor

15 public Point( int xValue, int yValue )

16 {

17 // implicit call to Object constructor occurs here

18 x = xValue; // no need for validation

19 y = yValue; // no need for validation

20 }

21

22 // set x in coordinate pair

23 public void setX( int xValue )

24 {

25 x = xValue; // no need for validation

26 }

27

Error compile

Page 39: Java cơ bản java co ban

VTC Academy THSoft Co.,Ltd 39

Action on class

Teacher – [email protected]– 0984380003– https://play.google.com/store/search?q=thsoft+co&c=apps

Captions Members