-
03-15-2008, 01:00 AM #1
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 10
Sưu tầm : JAVA for dummies - JAVA dành cho các “em chã”
Đây là loạt bài viết về Java mình sưu tầm được dành cho những member mới nhập môn Java
Tại sao bài viết này lại có cái tên quái gở như vậy ?
Có 2 loại newbie đến với Java:
- Loại 1: các newcomer, là những người đã biết ít nhất một ngôn ngữ lập trình, hoặc đã có quá trình làm việc với vi tính lâu năm, và đủ thông minh để học Java mà không cần đọc bài viết này
- Loại 2: các dummy, là những người chưa biết tí gì về lập trình, nhưng siêng năng, ham học hỏi, và thích Java
Loạt bài viết này dành cho những tín đồ Java giáo loại 2.
Xin hỏi, bác căn cứ vào đâu mà gọi người ta là “chã” ?
Xin trả lời, nếu bạn không phải “chã”, bạn không nên đọc loạt bài viết này. Nó được viết “step by step” rất ngây ngô và buồn cười, tin tôi đi.
Vậy, nguyên nhân do đâu có bài viết này ?
- Hoàn cảnh tham gia JVN của em khá đặc biệt, một senior của JVN, tặng em bộ tạp chí của anh ấy kèm lời khuyên vào JVN. Em gặp “chân sư” của mình qua đường, “thụ giáo” vào một đêm không trăng không sao, nhận “kiếm phổ” mà không biết tên sư phụ ngoài mỗi cái nick khủng long. Trời tối, quá khuya, thầy trò chia tay vội vã, cũng nhanh như khi gặp mặt.
- Em tham gia JVN đã lâu, chẳng có đóng góp gì hết, những lời nói chân thành tuy hơi khó nghe của bác D_JVN đã làm em suy nghĩ và cảm thấy có lỗi.
- Đây chỉ là chút xíu công sức nhỏ bé của em, sức em thì chẳng tới đâu, chỉ mong các đàn anh thấy có gì sai sót chỉ bảo cho em.
Nguồn JVN
-
03-15-2008, 01:03 AM #2
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
CHƯƠNG I - BẮT ĐẦU VỚI JAVA
Bài 1 – Hello world
Bạn hãy xem bài của anh CEO trong JVN
Bài 2 – In ra chuỗi nhập vào
Bài đầu tiên của bạn, bạn đã học cách để Java in cái gì đó ra màn hình, trong bài này, bạn sẽ học cách nhập vào cái gì đó và Java in cái đó ra màn hình. Gõ cái này đi bạn (lưu ý, bạn phải gõ, không được copy và paste)
import java.io.*;
public class Hello {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Your name is: ");
String str;
str = in.readLine();
System.out.println("Welcome " + str + " to Java");
}
}
Xin trả lời, bạn sẽ học Java qua các ví dụ, rất nhiều ví dụ, lí thuyết thì bạn chỉ học từ từ thôi.
*Lí thuyết: cấu trúc một chương trình Java
public class Core {
public static void main(String[] args) {
System.out.println("Hello,Everybody in the World!");
}
}
public static void main(String[] args) đây là một phương thức main trong Java, để cho chương trình chạy được. Tạm thời bạn phải gõ y như thế này
System.out.println("Hello,Everybody in the World!") đây là một câu lệnh trong Java, đơn giản nó chỉ in ra chuỗi nằm trong 2 dấu “” ra màn hình.
Mọi lớp và phương thức trong Java mở ra bằng { và đóng lại bằng }
Mọi câu lệnh trong java kết thúc bằng ;
-
03-15-2008, 01:05 AM #3
Silver member
- Ngày tham gia
- Feb 2016
- Bài viết
- 5
Bài 3 – Biến trong Java
import java.io.*;
public class Hello {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Nhap a: ");
int a = Integer.parseInt(in.readLine());
System.out.print("Nhap b: ");
int b = Integer.parseInt(in.readLine());
int ketqua;
ketqua = a+b;
System.out.println("Ket qua bai toan a+b la: “ + ketqua);
}
}
*Lí thuyết:
import java.io.*;
public class Hello {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Your name is: ");
String str;
str = in.readLine();
System.out.println("Welcome " + str + " to Java");
}
}
String str khai báo biến str kiểu chuỗi, và
System.out.println("Welcome " + str + " to Java")
Đây cũng là dòng System.out.println như chương trình đầu, có khác là + str + tức là đưa một biến vào chuỗi in ra. Chỉ đến đó thôi nhé, sau đó, hãy quan tâm đến bài hôm nay
System.out.print("Nhap a: ");
int a = Integer.parseInt(in.readLine());
System.out.print("Nhap b: ");
int b = Integer.parseInt(in.readLine());
int ketqua;
ketqua = a+b;
System.out.println("Ket qua bai toan a+b la: “ + ketqua);
Giải thích
import bạn nhập class hay thư viện chuẩn, tạm thời đừng quan tâm nó là gì, chỉ cần nhớ là có nó để chương trình chạy
System.out.print in ra một chuỗi, nhưng không xuống dòng
System.out.println in ra một chuỗi, nhưng xuống dòng
int ketqua tức là khai báo biến ketqua kiểu int
ketqua = a+b tức là gán kết quả một biểu thức tính toán (ở đây là biến a + biến b) cho biến ketqua
System.out.println("Ket qua bai toan a+b la: “ + ketqua) thì đơn giản rồi, in cái dòng đó ra, chỉ khác là nó đưa biến ketqua của bạn vào chuỗi đó.
-
03-15-2008, 01:11 AM #4
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Bài 4 – Chia hết, chia lấy dư
*Lí thuyết: một số kiểu biến trong Java
Bạn đã biết 2 kiểu String (chuỗi) và int (nguyên) bây giờ bạn biết thêm kiểu float (thực)
Số nguyên và số thực bạn biết sự khác nhau rồi chứ. Bây giờ ta bắt đầu bài toán ví dụ
import java.io.*;
public class Hello {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Nhap a: ");
float a = Float.parseFloat(in.readLine());
System.out.print("Nhap b: ");
float b = Float.parseFloat(in.readLine());
float ketqua = a/b;
System.out.println("Ket qua bai toan a+b la: " + ketqua);
}
}
Ví dụ nhập a=5, b=2, kết quả in ra sẽ là 2.5, thú vị phải không ?
Bây giờ cũng bài toán ấy, bạn thay đổi như sau
import java.io.*;
public class Hello {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Nhap a: ");
int a = Integer.parseInt(in.readLine());
System.out.print("Nhap b: ");
int b = Integer.parseInt(in.readLine());
float ketqua = a/b;
System.out.println("Ket qua bai toan a+b la: " + ketqua);
}
}
Phép chia sẽ là phép chia hết nếu cả 2 toán hạng đều kiểu nguyên, gọi là chia lấy nguyên (/) hay div
Bây giờ cũng chương trình ấy mà ta thay đổi lại chút xíu xem sao
import java.io.*;
public class Hello {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Nhap a: ");
int a = Integer.parseInt(in.readLine());
System.out.print("Nhap b: ");
int b = Integer.parseInt(in.readLine());
float ketqua = a%b;
System.out.println("Ket qua bai toan a+b la: " + ketqua);
}
}
Đây là kết quả phép chia lấy dư 5 chia cho 2, gọi là chia lấy dư (%) hay mod
*Thế
nếu tôi muốn 2 số nguyên chia nhau mà ra kiểu thực chứ không phải phép
chia lấy nguyên thì sao ? Trong trường hợp đó, bạn dùng “ép kiểu”
int a=5,b=2;float ket qua;
ketqua=(float)a/b;
-
03-15-2008, 01:16 AM #5
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Bài 5 – Lập trình OOP
Bạn xem bài của anh CEO trong JVN
class
Đây là một class, class này có hai property (thuộc tính) là name và age
public class Person
{
String name;
int age;
}
public class Person
{
String name;
int age;
public Person(String name)
{
this.name = name;
}
}
this có nghĩa là bản thân cái class đó (ở đây là class Person).
Trong
class Person có một property là age, câu this.age = age có nghĩa là cái
thuộc tính age của class Person sẽ nhận giá trị ở cái đối số age do
public class Person
{
String name;
int age;
public Person(int age)
{
this.age = age;
}
public void Nhap()
{
nameonsole.readLine("Nhap ho ten:");
}
}
Person personOne = new Person(12);
Thì ta đã tạo ra một instance (thể hiện) là personOne của class Person
constructor Person(int age) đưa vào.
Lưu ý là mọi class đều có sẵn ít nhất một constructor không có đối số.
Đây là một class, class này ngoài property, constructor còn có một behavior (hành vi)
-
03-15-2008, 01:22 AM #6
Silver member
- Ngày tham gia
- May 2016
- Bài viết
- 46
Bài 5 – Lập trình OOP (tiếp)
Khai báo một class
public abstract class MyClass {}
Từ thứ 1 là khai báo quyền truy xuất và kế thừa,có 3 loại
-public:được phép truy xuất từ bất cứ nơi nào và bất cứ lớp nào cũng được quyền kế thừa
-protected:chỉ có phương thức cùng gói được phép truy xuất và kế thừa
-private:chỉ có phương thức cùng gói được phép truy xuất nhưng không lớp nào được phép kế thừa
-nếu không khai báo,mặc định là protected
Từ thứ 2 là khai báo một lớp trừu tượng hay là không trừu tượng
Nhiem vu: tao 1 lop Person, tao tiep 2 lop Students va Teachers ke thua lop Person, tao lop Execute chua ham chinh de chay chuong trinh.
--lop Person-
import corejava.*;
abstract class Person
{
//cai nay goi la cac property hay state-thuoc tinh cua doi tuong
String hoten;
int age;
String diachi;
int luong;
//cac constructor
public Person(int age)
{
this.age = age;
}
//cac method hay behavior-hanh vi cua doi tuong
public void Nhap()
{
hoten = Console.readLine("Nhap ho ten:");
diachi = Console.readLine("Nhap dia chi:");
}
//vi la 1 class thuoc loai abstract nen Person duoc phep khai bao cac method khong co noi dung, noi dung cua class In se duoc cac lop ke thua no them vao noi dung cua rieng no
public abstract void In();
public abstract int Tinhluong();
}
}
import corejava.*;
class Students extends Person
{
int MaSV,Malop;
public void Nhap()
{
super.Nhap();
MaSV = Console.readInt("Nhap ma SV:");
Malop = Console.readInt("Nhap ma lop:");
}
public void In()
{
System.out.println(hoten);
System.out.println(diachi);
System.out.println(MaSV);
System.out.println(Malop);
}
public int Tinhluong()
{
return 150000;
}
}
import corejava.*;
class Execute
{
public static void main(String args[])
{
Students st = new Students();
st.Nhap();
st.In();
st.luong=st.Tinhluong();
Teachers tc = new Teachers();
tc.Nhap();
tc.In();
tc.luong=tc.Tinhluong();
}
}
-
03-15-2008, 01:28 AM #7
Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 1
Khai báo một thuộc tính:
Khai báo 1 thuộc tính
public static void temp;
Từ thứ 1 là khai báo quyền truy xuất,có 3 loại
-public:được phép truy xuất từ bất cứ nơi nào
-protected:chỉ có lớp con mới được phép truy xuất
-private:chỉ có lớp đó xài(thuộc tính riêng của nó)
-nếu không khai báo,mặc định là protected
b.Từ thứ 2 là khai báo cách truy xuất(static)
static(tĩnh)
-nếu không khai báo,mặc định là không tĩnh
Tất cả các đối tượng thể hiện từ lớp cha đều được phép thay đổi giá trị của các thuộc tính không tĩnh,còn giá trị của thuộc tính tĩnh thì không được phép thay đổi
public class Car
{
public string branch;
public int cost;
public static int tire=4;
}
ToyotaCar,Peugeot,Mazda…) đều được phép thay đổi các thuộc tính branch
hay cost để phù hợp cho riêng mình,nhưng thuộc tính tire (số bánh xe)
không được phép thay đổi vì là thuộc tính tĩnh
Nói cách khác, chỉ có
một và chỉ một thuộc tính có tên là tire trong class Car và tất cả các
class con của nó, vì vậy gọi là tĩnh
Khai báo một hành vi
Một phương thức được khai báo như sau
public static double ketqua()
Có 3 chỉ định truy xuất là public, protected và private
-public:được phép truy xuất từ bất cứ nơi nào
-protected:chỉ có lớp kế thừa lớp chứa nó được truy xuất
-private:chỉ lớp chứa nó được truy xuất(dùng nội bộ)
-nếu không khai báo,mặc định là protected
Có 6 chỉ định thuộc tính là static, abstract, final, native, synchronized (đồng bộ) và volatile (linh hoạt)
static(tĩnh)
-nếu không khai báo,mặc định là không tĩnh
class TestObject
{
static void StaticMethod() {…}
void NonStaticMethod() {…}
}
TestObject test=new TestObject();
test.NonStaticMethod();
Nếu là một phương thức tĩnh,bạn được phép gọi trực tiếp từ lớp
TestObject.StaticMethod();
abstract(trừu tượng)
Một phương thức trừu tượng không có nội dung.Nội dung của nó sẽ được các lớp con tùy biến và phát triển theo hướng của riêng nó.
- final: không thể được extends hay override (ghi đè)
- native: thân phương thức viết bằng C hay C++
- synchronized: chỉ cho phép 1 thread truy cập vào khối mã ở cùng một thời điểm
- volatile: sử dụng với biến để thông báo rằng giá trị của biến có thể được thay đổi vài lần vì vậy không ghi vào thanh ghi
.Từ thứ 3 là giá trị trả về.Nếu không có giá trị trả về thì là void
-
10-10-2008, 05:08 PM #8
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 2
Kể từ khi có Scanner thì ít người dùng BufferedReader để đọc input từ bàn phím nữa,
sao bạn không giới thiệu ví dụ với Scanner luôn [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
-
12-10-2008, 08:09 AM #9
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
Gửi bởi mediocre-ninja
-
05-13-2009, 01:54 AM #10
Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 3
wow thank pac nhiu
Xe nâng người Boom lift được Công Ty TNHH Trung thành phân phối chính hãng tại khu vực phía Bắc. Với chi phí đầu tư ban đầu thấp hơn rất nhiều so với các loại xe nâng dầu , xe nâng động cơ loại...
Xe nâng người được trung thành nhập khẩu giá tốt