Java cơ bản java co ban
-
Upload
ifis -
Category
Technology
-
view
319 -
download
0
description
Transcript of Java cơ bản java co ban
![Page 1: Java cơ bản java co ban](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/2.jpg)
VTC Academy THSoft Co.,Ltd 2
Introduction
Course Objectives Organization of the Book
![Page 3: Java cơ bản java co ban](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/23.jpg)
VTC Academy THSoft Co.,Ltd 23
Declaring Object Reference Variables
ClassName objectReference;
Example:Circle myCircle;
![Page 24: Java cơ bản java co ban](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/24.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/25.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/26.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/27.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/28.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/29.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/30.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/31.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/32.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/33.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/34.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/35.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/36.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/37.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/38.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062307/5563a5e7d8b42a01658b5481/html5/thumbnails/39.jpg)
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