Bài giảng Lập trình Java Chương 1: Lập trình cơ bản với ngôn ngữ Java cung cấp cho người học các kiến thức: Môi trường lập trình, chương trình đầu tiên, kiểu dữ liệu, nhập xuất ở màn hình Console, các cú pháp rẽ nhánh, lặp,... Mời các bạn cùng tham khảo.
Trang 2Phát triển UD CSDL 2
Môi trường, cấu trúc chương trình,
kiểu dữ liệu
Trang 4Môi trường lập trình
• Netbeans IDE 7.2
Trang 6Chương trình đầu tiên
• File � New Project …
Trang 7Chương trình đầu tiên
• Thi t l p: Project name, location, folder Finish ế ậ
Trang 8Chương trình đầu tiên
Trang 9Chương trình đầu tiên
• Ch ươ ng trình xu t ra màn hình console chu i "Hello World" ấ ỗ
Trang 10Chương trình đầu tiên:
public static void main (String[] args) {
// TODO code application logic here String s = new String("Hello World");
System.out.println(s);
}
– M t ch ộ ươ ng trình JAVA ph i có 1 hàm main Hàm main là đi m b t đ u c a ch ả ể ắ ầ ủ ươ ng trình (Entry Point)
Trang 11Chương trình đầu tiên
• C u hình Entry Point cho ch ấ ươ ng trình:
– Ch n project � Properties� Run � Main Class: s ọ s
Trang 12Chương trình đầu tiên
Trang 13Chương trình đầu tiên
• Biên d ch và th c thi mã ngu n JAVA t dòng l nh: ị ự ồ ừ ệ
– Hai l nh c b n: ệ ơ ả
• javac : Biên d ch các t p tin *.java thành t p tin th c thi *.classị ậ ậ ự
• java: Ch y chạ ương trình t các t p tin sau khi biên d chừ ậ ị– Sau khi cài JDK, ki m tra các l nh java, javac đã s n sàng hay ch a?: ể ệ ẳ ư
Lỗi
Trang 14Chương trình đầu tiên
• Biên d ch và th c thi mã ngu n JAVA t dòng l nh: ị ự ồ ừ ệ
– N u ch a: ế ư
• 1 Tìm đường d n th m c đã cài đ t JDK/binẫ ư ụ ặ
• 2 Thay đ i bi n môi trổ ế ường PATH
– Control Panel � System � Advance System Setting � Enviroment Variables – B sung đ ổ ườ ng d n c a th m c cài đ t JDK/bin vào bi n PATH ẫ ủ ư ụ ặ ế
• 3 T t và m l i c a s command line và th c thi l i đ ki m tra.ắ ở ạ ử ổ ự ạ ể ể
Ví d : C:\Program Files (x86)\Java\jdk1.7.0_06\binụ
Trang 15Chương trình đầu tiên
Trang 16Chương trình đầu tiên
• Khi các l nh ệ java và javac đã s n sàng: ẳ
OK
OK
Trang 17Chương trình đầu tiên
• Gi s project HelloWorld đ ả ử ở ườ ng d n: ẫ
C:\Users\TruongSon\Documents\NetBeansProjects\HelloWorld
Trang 18Chương trình đầu tiên
• 1 Biên d ch l p HelloWorld.java, k t qu biên d ch đ ị ớ ế ả ị ượ c b vào trong th m c ỏ ư ụ classes
• 2 Th c thi l p HelloWorld n m trong package helloworld: ự ớ ằ
C:\Users\ \HelloWorld>javac -d "classes" "src/helloworld/HelloWorld.java"
C:\Users\ \HelloWorld>java -classpath "classes" helloworld.HelloWorld
Biên dịch và thực thi bằng command line
Trang 19Chương trình đầu tiên
Biên dịch và thực thi bằng Netbeans
Trang 20Kiểu dữ liệu và khai báo biến
Trang 21Kiểu dữ liệu
• Chuy n đ i ki u d li u sang chu i: ể ổ ể ữ ệ ỗ
– String String valueOf ( Object obj)
– String String valueOf ( boolean b)
– String String valueOf ( char c)
– String String valueOf ( char [] data)
– String String valueOf ( char [] data, int offset, int count) – String String valueOf ( boolean b)
– String String valueOf ( int i)
– String String valueOf ( long l)
– String String valueOf ( float f)
– String String valueOf ( double d)
Trang 22Kiểu dữ liệu
• Chuy n đ i ki u d li u sang ki u int / Integer , long/Long ể ổ ể ữ ệ ể
– Integer Integer valueOf (String str)
– Integer Integer valueOf (int i)
– int Integer valueOf (String str) intValue ()
– int i Integer parseInt (String str)
– Long Long valueOf (String str)
– Long Long valueOf (long l)
– long l = Long parseLong (String str)
– long i = Long valueOf (String str) longValue ()
(*) int, long: ki u d li u c s ể ữ ệ ơ ở
(**) Integer, Long : Ki u d li u L p h ể ữ ệ ớ ướ ng đ i t ố ượ ng
Trang 23Kiểu dữ liệu
• Chuy n đ i ki u d li u sang ki u float/ Float, double/Double ể ổ ể ữ ệ ể
– Float Float valueOf (String str)
– Float Float valueOf (int i)
– float Float valueOf (String str) floatValue ()
– float Float parseFloat (String str)
– Double Double valueOf (String str)
– Double Double valueOf (double l)
– double Double valueOf (String str) doubleValue ()
– double Double parseDouble (String str)
(*) float, double: ki u d li u c s ể ữ ệ ơ ở
(**) Float, Double: Ki u d li u L p h ể ữ ệ ớ ướ ng đ i t ố ượ ng
Trang 24• Chuy n đ i ki u d li u sang ki u ngày: ể ổ ể ữ ệ ể
Trang 29Nhập & Xuất từ màn hình console
Trang 32//Xu t theo cách thông th ấ ườ ng
System.out.println(mssv + "-" + hoVaTen + ":" + diem);
//Xu t s d ng đ nh d ng xu t ấ ử ụ ị ạ ấ
String str = String.format("%s - %s : %f", mssv, hoVaTen, diem); System.out.println(str);
Trang 33Scanner scan = new Scanner (System.in);
String str = scan nextLine ();
Trang 36} else if (diem>=8 && diem<9) {
System.out.println( "Gi i" o );
} else if (diem>=7 && diem <8) {
System.out.println( "Khá" );
} else if (diem>=5 && diem <7) {
System.out.println( "Trung binh" );
Trang 37• Giá tr ị: char, byte, short, int
• Giá tr 1ị , giá tr 2 ị có cùng ki u d li u ể ữ ệ v i ớ giá tr ị
Trang 43double Math abs (double d)
double Math sqrt (double d)
double Math min (double a, double b)
double Math max (double a, double b)
double Math exp (double e)
double Math round (double r)
double Math pow (double a, double b)
double Math random ()
double Math PI
double Math E
Trang 44double a = 2.3;
double b = Math.pow (b, 3); //min – max
double c = 6;
double d = 9.2;
double min = Math.min (c, d); double max = Math.max (c, d);
Trang 45Scanner scan = new Scanner(System.in); int nChucNang = -1;
Trang 47int[] arr1; //Khai báo m ng ki u int ả ể
long[] arr2; //Khai báo m ng ki u longả ể
float[] arr3; //Khai báo m ng ki u floatả ể
double[] arr4; //Khai báo m ng ki u double ả ể
boolean[] arr5; //Khai báo m ng ki u ả ể
boolean
String[] arr6 ; //Khai báo m ng ki u string ả ể
Trang 48int [] arr1 = new int [5]; //Khai báo va
c p phát m ng ki u int , a.length = 5 â ả ê
long [] arr2 = new long [5]; // Khai báo
va c p phát m ng ki u long , a.length = â ả ê
5
float [] arr3 = new float [7]; //Khai báo
va c p phát m ng ki u float, a.length = â ả ê
7
String [] arr6 = new String [6]; //Khai
báo va c p phát m ng ki u string, â ả ê
a.length = 6
Trang 51Mảng một chiều
• (4) Xu t m ng ấ ả
– Cách 1: s d ng c u trúc l p foreach ử ụ ấ ặ
//tenBien l n l ầ ượ t là các ph n t bên trong m ng ầ ử ả
for (KieuDuLieu tenBien : tenMang){
Trang 52Mảng một chiều
• (4) Xu t m ng ấ ả
– Cách 2: S d ng c u trúc l p ử ụ ấ ặ for đ xu t m ng ể ấ ả – Ví d : ụ
for (int i=0 ; i<a.length; i++){
System.out.println(a[i]);
}
Trang 53int n = Integer.parseInt (scan nextLine ());
int [] a = new int [n]; //a.Length = n
for ( int i = 0; i < a.length; i++) {
System.out.print("a["+i+"]=");
a[i] =
Integer.parseInt (scan nextLine ()); }
Trang 54//Xu t m ng dùng for ấ ả
for ( int i = 0; i < a.length; i++) {
System.out println (a[i]);
Trang 56int min, temp;
for (i = 0; i < a.length - 1; i++) {
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
Trang 60int [][] arr1 = new int [3][5];
int soDong = a.length; //soDong = 3 int soCot = a[i].length; //soCot = 5 //Khai báo va c p phát m ng ki u long â ả ê long [][] arr2 = new long [5][6];
int soDong = a.length; //soDong = 5 int soCot = a[i].length;; //soCot = 6 //Khai báo va c p phát m ng hai chi u â ả ê
ki u float ê
float [][] arr3 = new float [7][9];
int soCot = a.length; //soDong = 7 int soCot = a[i].length; //soCot = 9
Trang 61int soDong = a.length; //soDong = 4 int soCot = a[i].length; //soCot = 2 //Cách 2
int [][] a = new int [4][2];
int soDong = a.length; //soDong = 4 int soCot = a[0].length; //soCot = 2 int k = 1;
for ( int i = 0; i < soDong; i++) {
for ( int j = 0; j < soCot; j++) {
a[i][j]=k++;
}
}
Trang 62for ( int i = 0; i < a.length; i++){
for ( int j = 0; j < a[i].length; j++){
Trang 63for ( int i = 0; i < a.length; i++){
for ( int j = 0; j < a[i].length; j++) {
Trang 64for ( int i = 0; i < a.length; i++){
for ( int j = 0; j < a[i].length; j++){
s = s + a[i][j];
}
}
System.out.println ( "s=" + s);
Trang 65Phát triển UD CSDL 2
Lập trình hướng đối tượng với JAVA
Trang 66LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
• Khai báo l p đ i t ớ ố ượ ng
• Khai báo thu c tính ộ
• Đ nh nghia các ph ị ươ ng th c kh i t o ứ ở ạ
• Đ nh nghia các ph ị ươ ng th c get/set ứ
• Đ nh nghia các ph ị ươ ng th c nh p xu t console ứ ậ ấ
• Đ nh nghia các ph ị ươ ng th c x lý nghi p v ứ ử ệ ụ
• Đ nh nghia các ph ị ươ ng th c overload ứ
• Đ nh nghia các ph ị ươ ng th c m c l p (static) ứ ứ ớ
Trang 67Khai báo lớp đối tượng
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
package bt1;
public class PhanSo {
//Khai báo các thu c tính ọ //Khai báo các ph uo ng th c ư //Các ph uo ng th c kh i t o ư ơ a //Các ph uo ng th c get/set ư //Các ph uo ng th c nh p xu t ư ạ â console
//Các ph uo ng th c x lý ư ử nghi p v ẹ ụ
//Các ph uo ng th c overload ư //Các ph uo ng th c static ư
public class TenLop {
//Khai báo các thu c tinh ộ //Khai báo các ph ươ ng th c ứ
//Các ph uo ng th c kh i t o ư ơ a //Các ph uo ng th c get/set ư //Các ph uo ng th c nh p ư ạ
xu t console â //Các ph uo ng th c x lý ư ử nghi p v ẹ ụ
//Các ph uo ng th c overload ư //Các ph uo ng th c static ư
}
Trang 68Khai báo thuộc tính
1 2 3 4 5 6 7 8 9 10
package bt1;
public class PhanSo {
//Khai báo các thu c tính ọ private int tuSo;
private int mauSo;
//Khai báo các ph uo ng th c ư
public class TenLop {
//Khai báo các thu c tính ọ private KieuDuLieu tenTT1;
… private KieuDuLieu tenTTN;
//Khai báo các ph uo ng th c ư
}
Trang 69Khai báo thuộc tính
1 2 3 4 5 6 7
package bt1;
public class MangPhanSo {
//Khai báo các thu c tính ọ private PhanSo [ ] arr;
//Khai báo các ph uo ng th c ư
public class MangSoNguyen {
//Khai báo các thu c tính ọ private int [ ] arr;
//Khai báo các ph uo ng th c ư
}
Trang 70Định nghĩa phương thức khởi tạo
public class TenLop{
//Khai báo các thu c tính ọ
private KieuDuLieu thuocTinh1;
private KieuDuLieu thuocTinhN;
//Ph uo ng th c kh i t o đ y đ ư ơ a â u
tham sô
public TenLop ( KieuDuLieu
thuocTinh1, , KieuDuLieu thuocTinhN)
{
this thuocTinh1=thuocTinh1;
Trang 71Định nghĩa phương thức khởi tạo
public class PhanSo{
//Khai báo các thu c tính ọ
private int tuSo;
private int mauSo;
public TenLop ( int tuSo, int mauSo){
this tuSo = tuSo;
this mauSo = mauSo;
}
//Ph uo ng th c kh i t o sao chep ư ơ a
public TenLop ( PhanSo ps){
this tuSo = ps.tuSo;
this mauSo = ps.mauSo;
}
}
Trang 72Định nghĩa phương thức khởi tạo
Trang 73Định nghĩa phương thức khởi tạo
public class MangPhanSo {
private PhanSo [] arr; //Khai báo
//Ph uo ng th c kh i t o sao chep ư ơ a
public MangPhanSo ( MangPhanSo
mps) {
this.arr = new PhanSo[mps.arr.length];
for (int i = 0; i <
mps.arr.length; i++) {
this.arr[i] = new PhanSo(mps.arr[i]);
} }
}
Trang 74Định nghĩa phương thức khởi tạo
public class Main {
public static void main ( String [] args)
MangPhanSo mps3 = new MangPhanSo (
n e w
P h a n S o
( 1 , 3 ) ,
n e w
P h a n S o
( 4 , 3 ) ,
n e w
P h a n S o
( 5 , 9 ) )
Trang 75Định nghĩa phương thức khởi tạo
public class MangSoNguyen {
//Khai báo thu c tính ọ
private int[] arr;
public MangSoNguyen (int [] arr) {
this.arr = new int[arr.length];
for (int i = 0; i < arr.length; i+
+){
this.arr[i] = arr[i];
} }
for (int i = 0; i <
msn.arr.length; i++) {
}
}
Trang 76Định nghĩa phương thức khởi tạo
Trang 77Định nghĩa các phương thức Get / Set
public class TenLop{
//Khai báo các thu c tính ọ
private KieuDuLieu thuocTinh1;
private KieuDuLieu thuocTinhN ;
}
}
Trang 78Định nghĩa các phương thức Get / Set
public class PhanSo{
//Khai báo các thu c tính ọ
private int tuSo;
private int mauSo;
}
Trang 79Định nghĩa các phương thức Get / Set
public class Main {
public static void main(String[]
args) {
PhanSo ps1= new PhanSo();
System.out.println(ps1.getT uSo() + "/" +
ps1.getMauSo());
ps1.setTuSo( 3 );
ps1.setMauSo( 4 );
System.out.println(ps1.getT uSo() + "/" +
ps1.getMauSo());
}
}
Trang 80Định nghĩa các phương thức Get / Set
public class MangPhanSo {
//Khai báo thu c tính ọ
private PhanSo[] arr;
public void setArr(PhanSo arr) {
this arr = new
}
Trang 81
Định nghĩa các phương thức Get / Set
this arr[index]=valu e;
} }
public PhanSo get( int index) {
PhanSo ps = null ;
if (index >= 0 && index <
this arr.length) {
//ps=new PhanSo(this.arr[ind ex]);
Trang 82Định nghĩa các phương thức Get / Set
PhanSo[] arr2 = new PhanSo[ 2 ];
arr2[ 0 ] = new PhanSo( 2 , 4 );
arr2[ 1 ] = new PhanSo( 3 , 7 );
mps.setArr(arr2);
index= 0 ;
mps.set(index, new PhanSo( 8 , 5 ));
}
Trang 83Định nghĩa các phương thức Get / Set
public class MangSoNguyen {
//Khai báo thu c tính ọ
private int [] arr;
public void setArr( int [] arr) {
this arr = new int [arr.length];
for ( int i = 0 ; i < arr.length;
i++) {
this arr[i] = rr[i];
} }
}
Trang 84Định nghĩa các phương thức Get / Set
public void set( int index, int value) {
if (index >= 0 && index <
this arr.length) {
this arr[index]=valu e;
} }
public Integer get( int index) {
Integer value = null ;
if (index >= 0 && index <
Trang 85Định nghĩa các phương thức Get / Set
Trang 86Định nghĩa các phương thức nhập xuất
public class PhanSo{
//Khai báo các thu c tính ọ
private int tuSo;
private int mauSo ;
System.out.print( "M u â
s :" ô );
this mauSo = Integer.parseInt(scan.nextL ine());
}
public void xuat(String tieuDe){
System.out.println(tieuDe);
String str=String.format( "%d/
%d" , this tuSo, this mauSo);
System.out.println(str);
}
}
Trang 87Định nghĩa các phương thức nhập xuất
public class Main {
public static void main(String[]
args) {
PhanSo ps1= new PhanSo();
ps1.nhap( "Nh p phan s ạ ô 1" );
ps1.xuat( "Xu t phan s 1" â ô );
PhanSo ps2= new PhanSo();
ps2.nhap( "Nh p phan s ạ ô 2" );
ps2.xuat( "Xu t phan s 2" â ô );
}
}
Trang 88Định nghĩa các phương thức nhập xuất
public class MangPhanSo {
//Khai báo thu c tính ọ
private PhanSo [] arr;
…
public void nhap(String tieuDe){
Scanner scan= new
this arr= new PhanSo[n];
for ( int i= 0 ; i< this arr.length; i++){
this arr[i] = new
PhanSo();
this arr[i].nhap( "Ph
an s th " ô ư +i);
} }
…
}
Trang 89Định nghĩa các phương thức nhập xuất
this arr[i].xuat( "Pha
n s th " ô ư +i);
} }
Trang 90Định nghĩa các phương thức nhập xuất
public class MangSoNguyen {
//Khai báo thu c tính ọ
private int [] arr;
public void nhap(String tieuDe){
Scanner scan= new
this arr= new int [n];
for ( int i= 0 ; i< this arr.length; i++){
System.out.print( "P
h n t th " â ử ư + i +
":" );
this arr[i]=Integer.p arseInt(scan.nextLi ne())
} }
}
Trang 91Định nghĩa các phương thức nhập xuất
System.out.print( "P han s th " ô ư +i+ ":" );
System.out.println( t his arr[i]);
} }
Trang 92Định nghĩa các phương thức xử lý nghiệp vụ
public class PhanSo{
//Khai báo các thu c tính ọ private
int tuSo;
private int mauSo ;
public PhanSo cong(PhanSo ps){
PhanSo kq= new PhanSo();
kq.tuSo= this tuSo*ps.mauSo + this mauSo*ps.tuSo;
kq.mauSo= this mauSo*ps.m auSo;
return kq;
}
}
Trang 93Định nghĩa các phương thức xử lý nghiệp vụ
public class Main {
public static void main(String[]
args) {
PhanSo ps1= new PhanSo();
ps1.nhap( "Nh p phan s ạ ô 1" );
ps1.xuat( "Xu t phan s 1" â ô );
PhanSo ps2= new PhanSo();
ps2.nhap( "Nh p phan s ạ ô 2" );
ps2.xuat( "Xu t phan s 2" â ô );