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 1Phát triển UD CSDL 2
Lập trình cơ bản với ngôn ngữ JAVA
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 5Môi trường lập trình
Download: http://netbeans.org/downloads/
Platform:WindowsLinuxSolarisMac OS X
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:
Hàm main
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:
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
Kiểu dữ liệu thường dùng:
Số nguyên: int, long
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 24Chuyể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 34int n =
Integer.parseInt(scan.nextLine());
Trang 36Integer.parseInt(scan.nextLine());
if (diem>=9) {
System.out.println("X
uâ t să c"́ ́ );
} else if (diem>=8 && diem<9) {
System.out.println("Gioi"̉ );
} else if (diem>=7 && diem <8) {
System.out.println("K
ha "́ );
} else if (diem>=5 && diem <7) {
System.out.println("Trung bi nh"̀ );
}
else {
System.out.println("D
u i trung bi nh"̛ớ ̀ ); }
Trang 37switch (gia trí ̣){
case gia tri 1́ ̣ :
Trang 38Integer.parseInt(scan.nextLine());
Trang 39Integer.parseInt(scan.nextLine());
}while (n < 3 || n>=10)
Trang 40Integer.parseInt(scan.nextLine());
Trang 41break
Phạm vi sử dụng
Sử dụng trong for, while, do-while Công dụng
Thoát khỏi vòng lặp
Trang 42Phạm vi sử dụng
Sử dụng trong for, while, do-while
Trang 43double 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 45PROGRAMMING " );
System.out.println( "
" );
System.out.println( "CAC CHUC NANG: " );
System.out.println( "1. Chuc nang 1" );
System.out.println( "2. Chuc nang 2" );
System.out.println( "3. Chuc nang 3" );
System.out.println ("4. Chuc nang 4" );
System.out.println( "0. THOAT" );
Scanner scan = new Scanner(System.in);
int nChucNang = 1;
Trang 46System.out.print("Vui long chon chuc nang 05: ");
nChucNang =
Integer.parseInt(scan.nextLin e());
switch (nChucNang) {
case 1:
System.out.println( "BAN VUA CHON CHUC NANG
1 " ); break;
case 2:
System.out.println( "BAN VUA CHON CHUC NANG
2 " ); break;
case 3:
System.out.println( "BAN VUA CHON CHUC NANG
3 " ); break;
case 4:
System.out.println( "BAN VUA CHON CHUC NANG
4 " ); break;
case 0:
System.out.println ("BAN VUA CHON THOAT !!!
" );break;
}
}
}
Trang 48String[] arr6 = new
String [6]; //Khai báo và
cấp phát mảng kiểu
string, a.length = 6
Trang 50Mảng một chiều
(3) Khởi tạo mảng
Ví dụ:
//Khởi tạo mảng một chiều kiểu long
long[] arr1 = {1, 3, 5, 7, 9}; //a.length = 5
//Khởi tạo mảng một chiều kiểu float
float[] arr2 = { ( float ) 1.3, ( float ) 3.2, ( float ) 5.5}; //a.length = 3 //Khởi tạo mảng một chiều kiểu double
double[] arr2 = {2.3, 7.2, 9.5};//a.length= 3
//Khởi tạo mảng một chiều kiểu string
String[] ngay = {
"chủ nhật","thứ hai","thứ ba",
"thứ tư","thứ năm","thứ sáu","thứ bảy"
};//a.length= 7
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 53Integer.parseInt(scan
nextLine());
}
Trang 54//Xuâ t mang du ng for ́ ̉ ̀
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
Trang 56} }
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
Trang 62System.out.print("M i ờ
nh p va o sô do ng:"ậ ̀ ́ ̀ ); int n =
Integer.parseInt(scan.nextLine());
System.out.print("M i ờ
nh p va o sô c t:"ậ ̀ ́ ộ ); int m =
Integer.parseInt(scan.nextLine());
}
Trang 63System.out.println(); }
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 nghĩa các phương thức khởi tạo
Định nghĩa các phương thức get/set
Định nghĩa các phương thức nhập xuất console Định nghĩa các phương thức xử lý nghiệp vụ Định nghĩa các phương thức overload
Định nghĩa các phương thức mức lớp (static)
Trang 67Khai báo lớp đối tượng
123456789101112131415
package bt1;
public class PhanSo {
//Khai báo các thu c ộtính
//Khai báo các
phương th cứ//Các phương th c ứ
kh i t oở ạ//Các phương th c ứget/set
//Các phương th c ứ
nh p xu t consoleậ ấ//Các phương th c ứ
x lý nghi p vử ệ ụ//Các phương th c ứoverload
//Các phương th c ứstatic
//Khai báo các
phương th cứ//Các phương
th c kh i t oứ ở ạ//Các phương
th c get/setứ//Các phương
th c nh p xu t ứ ậ ấconsole
//Các phương
th c x lý nghi p ứ ử ệvụ
//Các phương
th c overloadứ//Các phương
th c staticứ
}
dụ
Trang 68Khai báo thuộc tính
12345678910
package bt1;
public class PhanSo {
//Khai báo các thu c tínhộ
private int tuSo; private int mauSo;
private KieuDuLieu
tenTT1;
…
private KieuDuLieu tenTTN;
Trang 69Khai báo thuộc tính
1234567
package bt1;
public class MangPhanSo {
//Khai báo các thu c tínhộ
private PhanSo[ ] arr;
Ví
dụ
Trang 70Định nghĩa phương thức khởi tạo
this thuocTinhN=
Gia tri m c ́ ̣ ạ ̆ đinh; ̣
this thuocTinhN=t huocTinhN;
this thuocTinhN=t l.thuocTinhN;
}
}
Trang 71Định nghĩa phương thức khởi tạo
private int tuSo; . . .
private int mauSo;
//Phuong th c kh i ̛ ̛ ứ ở
public TenLop ( int
tuSo, int mauSo){
this tuSo = tuSo;
this mauSo = mauSo;
this mauSo = ps.mauSo;
}
}
Trang 72Định nghĩa phương thức khởi tạo
PhanSo ps2 = new
PhanSo(2,3);
PhanSo ps3 = new
PhanSo(ps2);
}
}
Trang 73Định nghĩa phương thức khởi tạo
this.arr = new
PhanSo [arr.length ];
for (int i = 0; i <
arr.length; i++) {
this.arr[i] = new
PhanSo (arr[i ]);
} }
//Phuong th c kh i tao ̛ ̛ ư ́ ở ̣ sao che p ́
public
MangPhanSo(Mang PhanSo mps) {
this.arr = new PhanSo[mps.arr.l ength];
for (int i = 0; i < mps.arr.length; i+ +) {
this.arr[i] = new
PhanSo(mp s.arr[i]);
} }
}
Trang 74Định nghĩa phương thức khởi tạo
MangPhanSo ();
//S dung phuong ử ̣ ̛ ̛
th c kh i tao co ư ́ ở ̣ ́ tham sô ́
MangPhanSo mps2 = new
MangPhanSo (ne
w PhanSo(2,3));
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 ) )
;
PhanSo [] arr = new PhanSo [2];
MangPhanSo (arr)
;
//S dung phuong ử ̣ ̛ ̛
th c kh i tao sao ư ́ ở ̣ che p ́
MangPhanSo mps5 = new
MangPhanSo (mp s3);
}
}
Trang 75Định nghĩa phương thức khởi tạo
//Khai báo thuộc tính
private int[] arr;
//Phương thức khởi
tạo mặc định public
MangSoNguyen() {
this.arr = null;
}
//Phương thức khởi
tạo có tham số
public
MangSoNguyen(int []
arr) {
this.arr = new int[arr.length];
for (int i = 0; i <
arr.length; i++){
this.arr[i] = arr[i];
} }
//Phương thức khởi
tạo sao chép
Trang 76Định nghĩa phương thức khởi tạo
public static void
main ( String [] args) {
//Sử dụng phương thức khởi tạo mặc định
MangSoNguyen
msn1=new
MangSoNguyen ( );
//Sử dụng phương thức khởi tạo có tham số
MangSoNguyen
msn2=new
MangSoNguyen ( 3);
//Sử dụng phương thức khởi tạo sao chép
MangSoNguyen
msn6=new
MangSoNguyen ( mps3);
}
}
Trang 77Định nghĩa các phương thức Get / Set
Trang 78Định nghĩa các phương thức Get / Set
//Phuong th c kh i tao ̛ ̛ ư ́ ở ̣
đô i tu ng ́ ̛ợ
} }
}
Trang 79Định nghĩa các phương thức Get / Set
System.out.println(ps1.getTuSo() +
"/" + ps1.getMauSo());
ps1.setTuSo(3);
ps1.setMauSo(4);
System.out.println(ps1.getTuSo() +
"/" + ps1.getMauSo());
}
}
Trang 80Định nghĩa các phương thức Get / Set
for (int i = 0; i <
arr.length; i++) {
this.arr[i] = new
PhanSo(arr[i]); }
} }
Trang 81
Định nghĩa các phương thức Get / Set
this.arr[index]=value;
} }
public PhanSo get(int
arr[index]);
ps = this.arr[index];
} return ps;
}
}
Trang 82Định nghĩa các phương thức Get / Set
3), new PhanSo(5,
Trang 83Định nghĩa các phương thức Get / Set
} }
}
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]=value;
}}
public Integer get(int
index) {
Integer value = null;
if (index >= 0
&& index <
this.arr.length) {
value = this.arr[index];
} return value;
}
}
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
Scanner scan = new
Scanner(System.in);
System.out.print(
"T sô :"ử ́ );
this.tuSo = Integer.parseInt(scan.nextLine());
System.out.print(
"Mâ u sô :"̃ ́ );
this.mauSo = Integer.parseInt(scan.nextLine());
}
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
ps1.nhap("Nh p ậpha n sô 1"̂ ́ );
ps1.xuat("Xuâ t ́pha n sô 1"̂ ́ );
PhanSo ps2=new PhanSo();
ps2.nhap("Nh p ậpha n sô 2"̂ ́ );
ps2.xuat("Xuâ t ́pha n sô 2"̂ ́ );
}
}
Trang 88Định nghĩa các phương thức nhập xuất
System.out.println(tieuDe);
System.out.print(
"Sô lu ng phâ n ́ ̛ợ ̀
t :"ử );
int n=Integer.parseInt(scan.nextLine())
; this.arr=new PhanSo[n];
for(int i=0; i<this.arr.length;
i++){
this.arr[i] = new
PhanSo();
this.arr[i].nhap("Pha n ̂
sô th "́ ứ +i);
} }
…
}
Trang 89Định nghĩa các phương thức nhập xuất
int n = this.arr.length;
System.out.println("Sô lu ng ́ ̛ợ
phâ n t : " ̀ ử + n);
for(int i=0; i<this.arr.length;
i++){
this.arr[i].xuat("Pha n sô ̂ ́
th "ứ +i);
}}
Trang 90Định nghĩa các phương thức nhập xuất
System.out.println(tieuDe);
System.out.print(
"Sô lu ng phâ n ́ ̛ợ ̀
t :"ử );
int n=Integer.parseInt(scan.nextLine())
; this.arr=new int[n];
for(int i=0; i<this.arr.length;
i++){
System.out.print("Phâ n ̀
t th "ử ứ + i + ":");
this.arr[i]=Integer.parseInt(scan.nextLine())
} }
}
Trang 91Định nghĩa các phương thức nhập xuất
int n = this.arr.length;
System.out.println("Sô lu ng ́ ̛ợ
phâ n t : " ̀ ử + n);
for(int i=0; i<this.arr.length;
i++){
System.out.print("Pha n ̂
sô th "́ ứ +i+
":");
System.out.println(this.arr[i]);
} }
Trang 92Định nghĩa các phương thức xử lý nghiệp vụ
kq.tuSo=this.tuSo
*ps.mauSo+this.mauSo*ps.tuSo;
kq.mauSo=this.mauSo*ps.mauSo;
return kq;
}
}
Trang 93Định nghĩa các phương thức xử lý nghiệp vụ
ps1.nhap("Nh p ậpha n sô 1"̂ ́ );
ps1.xuat("Xuâ t ́pha n sô 1"̂ ́ );
PhanSo ps2=new PhanSo();
ps2.nhap("Nh p ậpha n sô 2"̂ ́ );
ps2.xuat("Xuâ t ́pha n sô 2"̂ ́ );
PhanSo kq=ps1.cong(ps2)
; kq.xuat("Tông hai ̉pha n sô "̂ ́ );
}
}
Trang 94Định nghĩa các phương thức xử lý nghiệp vụ
for(int i=1; i<this.arr.length;
i++){
s=s.cong(this.arr[i]);
} }
}
Trang 95Định nghĩa các phương thức xử lý nghiệp vụ
Trang 96Định nghĩa các phương thức xử lý nghiệp vụ
i<this.arr.length;
i++){
s=s + this.arr[i];
} return s;
}
}
Trang 97Định nghĩa các phương thức xử lý nghiệp vụ
Trang 98Định nghĩa các phương thức overload
kq.tuSo=this.tuSo
*ps.mauSo+this.mauSo*ps.tuSo;
kq.mauSo=this.mauSo*ps.mauSo;
kq.tuSo=this.tuSo+this.mauSo*k;
kq.mauSo=this.mauSo;
return kq;
}
}
Trang 99Định nghĩa các phương thức overload
PhanSo ps2=new PhanSo(3, 4);
PhanSo kq1=ps1.cong(ps2);
kq1.xuat("Tông ̉
va ps2"̀ );
PhanSo kq2=ps1.cong(40)
; kq2.xuat("Tông ̉
va 40"̀ );
}
}
Trang 100Định nghĩa các phương thức overload
for(int i=1; i<this.arr.length;
i++){
s=s.cong(this.arr[i]);
} }
public PhanSo
tong(MangPhanSo
mps){
PhanSo s1=this.tong();
PhanSo s2=mps.tong();
PhanSo kq=s1.tong(s2);
return kq;
}
}