Biến (Variables), nhập xuất (input/output) và hàm toán học (Math) trong java

5923

CÁC BIẾN (VARIABLES) TRONG JAVA

Trong java, biến là tên của vùng nhớ. Có 3 kiểu biến trong java, bao gồm: biến local (biến địa phương), biến instance (biến toàn cục) và biến static.

Khai báo biến trong java

Cú pháp khai báo biến:

DataType varName [ = value] [, varName2] [ = value2]...;

Trong đó, DataType là kiểu dữ liệu của biến, varName là tên biến.

Quy tắc đặt tên biến trong java:

  • Chỉ được bắt đầu bằng một ký tự (chữ), hoặc một dấu gạch dưới (_), hoặc một ký tự dollar($).
  • Tên biến không được chứa khoảng trắng.
  • Bắt đầu từ ký tự thứ hai, có thể dùng ký tự (chữ), dấu gạch dưới (_), hoặc ký tự dollar($).
  • Không được trùng với các từ khóa.
  • Có phân biệt chữ HOA và chữ thường.

Ví dụ: về khai báo biến trong java:

package vn.edu.thaynhuom.bienvadulieu;
 
public class Bien {
    public static float PI = 3.14f;   // Đây là biến static
    int n;                            // Đây là biến instance
     
    public Bien () {
        char c = 'c';                 // Đây là biến local
    }
}
Biến Local (cục bộ) trong java
  • Biến local được khai báo trong các phương thức, hàm contructor hoặc trong các block.
  • Biến local được tạo bên trong các phương thức, contructor, block và sẽ bị phá hủy khi kết thúc các phương thức, contructor và block.
  • Không được sử dụng “access modifier” khi khai báo biến local.
  • Các biến local được lưu trên vùng nhớ stack của bộ nhớ.
  • Bạn cần khởi tạo giá trị mặc định cho biến local trước khi có thể sử dụng.

Ví dụ 1: Minh hoạ có khởi tạo biến local:

package vn.edu.thaynhuom.bienvadulieu;
 
public class Bien {
     
    public void sayHello() {
        int n = 10;                     // Đây là biến local
        System.out.println("Gia tri cua n la: " + n);
    }
     
    public static void main(String[] args) {
        Bien bienLocal = new Bien();
        bienLocal.sayHello();
    }
}

Kết quả: Gia tri cua n la: 10

Ví dụ 2: Minh hoạ khi không khởi tạo biến local:

package vn.edu.thaynhuom.bienvadulieu;
 
public class Bien {
     
    public void sayHello() {
        int n;                 // Đây là biến local
        System.out.println("Gia tri cua n la: " + n);
    }
     
    public static void main(String[] args) {
        Bien bienLocal = new Bien();
        bienLocal.sayHello();
    }
}

Kết quả: Khi không khởi tạo biến Local java sẽ báo lỗi (Exception in thread “main” java.lang.Error: Unresolved compilation problem: The local variable n may not have been initialized).

Biến Instance (toàn cục) trong java
  • Biến instance được khai báo trong một lớp(class), bên ngoài các phương thức, constructor và các block.
  • Biến instance được lưu trong bộ nhớ heap.
  • Biến instance được tạo khi một đối tượng được tạo bằng việc sử dụng từ khóa “new” và sẽ bị phá hủy khi đối tượng bị phá hủy.
  • Biến instance có thể được sử dụng bởi các phương thức, constructor, block, … Nhưng nó phải được sử dụng thông qua một đối tượng cụ thể.
  • Bạn được phép sử dụng “access modifier” khi khai báo biến instance, mặc định là “default”.
  • Biến instance có giá trị mặc định phụ thuộc vào kiểu dữ liệu của nó. Ví dụ nếu là kiểu int, short, byte thì giá trị mặc định là 0, kiểu double thì là 0.0d, … Vì vậy, bạn sẽ không cần khởi tạo giá trị cho biến instance trước khi sử dụng.
  • Bên trong class mà bạn khai báo biến instance, bạn có thể gọi nó trực tiếp bằng tên khi sử dụng ở khắp nới bên trong class đó.

Ví dụ: Minh hoạ về biến instance trong java:

package vn.edu.thaynhuom.bienvadulieu;
 
public class Sinhvien {
    // biến instance "ten" kiểu String, có giá trị mặc định là null
    public String ten;
 
    // biến instance "tuoi" kiểu Integer, có giá trị mặc định là 0
    private int tuoi;
 
    // sử dụng biến ten trong một constructor
    public Sinhvien(String ten) {
        this.ten = ten;
    }
 
    // sử dụng biến tuoi trong phương thức setTuoi
    public void setTuoi(int tuoi) {
        this.tuoi = tuoi;
    }
 
    public void showStudent() {
        System.out.println("Ten  : " + ten);
        System.out.println("Tuoi : " + tuoi);
    }
 
    public static void main(String args[]) {
        Sinhvien sv = new Sinhvien("Nguyen Van A");
        sv.setTuoi(21);
        sv.showStudent();
    }
}

Kết quả:

  • Ten : Nguyen Van A
  • Tuoi : 21
Biến Static trong java
  • Biến static được khai báo trong một class với từ khóa “static”, phía bên ngoài các phương thức, constructor và block.
  • Sẽ chỉ có duy nhất một bản sao của các biến static được tạo ra, dù bạn tạo bao nhiêu đối tượng từ lớp tương ứng.
  • Biến static được lưu trữ trong bộ nhớ static riêng.
  • Biến static được tạo khi chương trình bắt đầu chạy và chỉ bị phá hủy khi chương trình dừng.
  • Giá trị mặc định của biến static phụ thuộc vào kiểu dữ liệu bạn khai báo tương tự biến instance.
  • Biến static được truy cập thông qua tên của class chứa nó, với cú pháp: TenClass.tenBien.
  • Trong class, các phương thức sử dụng biến static bằng cách gọi tên của nó khi phương thức đó cũng được khai báo với từ khóa “static”.

Ví dụ: Minh hoạ về biến static

package vn.edu.thaynhuom.bienvadulieu;
 
public class Sinhvien {
    // biến static 'ten'
    public static String ten = "Nguyen Van A";
     
    // biến static 'tuoi'
    public static int tuoi = 21;
 
    public static void main(String args[]) {
        // Sử dụng biến static bằng cách gọi trực tiếp
        System.out.println("Ten : " + ten);
 
        // Sử dụng biến static bằng cách gọi thông qua tên class
        System.out.println("Ten : " + Sinhvien.tuoi);
    }
}

Kết quả:

  • Ten : Nguyen Van A
  • Tuoi : 21

NHẬP XUẤT (INPUT/OUTPUT) DỮ LIỆU RA MÀN HÌNH

Nhập dữ liệu từ bàn phím (có nhiều cách)
  • Java là một ngôn ngữ lập trình thuần hướng đối tượng, nên cách nhập dữ liệu từ bàn phím cũng phải sử dụng theo hướng đổi tượng. Tức là bạn phải khai báo một đối tượng, sau đó gọi hàm nhập, rồi gán giá trị cho biến.
  • Scanner là một lớp trong thư viện Java.util giúp bạn nhập và lưu dữ liệu từ bàn phím. Ngoài scanner, còn có nhiều lớp khác nữa, nhưng đây là lớp được sử dụng phổ biến.
  • Các phương thức thường dùng trong lớp Scanner:
Tên phương thứcTác dụng
nextBooleanNhập vào kiểu Boolean ( true – false) từ bàn phím
nextByteNhập vào kiểu dữ liệu Byte
nextShortNhập vào kiểu Short ( số nguyên từ -32768 đến 32767)
nextIntNhập vào kiểu số nguyên từ bàn phím
nextFloatNhập vào kiểu số thực
nextDoubleNhập vào kiểu Double ( số thực lớn hơn float)
nextLineNhập vào kiểu String ( String trong java giống char luôn nhé!)
nextLongNhập vào số nguyên lớn
  • Cú pháp nhập: Để sử dụng bạn khai báo một đối tượng Scanner có tên tùy ý. Ở đây mình đặt là scanner.
Scanner scanner = new Scanner(System.in);
scanner.nextInt(); // Gọi hàm nhập số nguyên. Các hàm khác cú pháp tương tự
Xuất dữ liệu ra màn hình

Xuất dữ liệu của biến mà bạn đã lưu cũng khá quan trọng. Nó show cho bạn kết quả của bài toán, các câu lệnh giúp người dùng tương tác với chương trình.

System.out.print(); // Xuất xong không xuống dòng 
System.out.println(); // Xuất xong có xuống dòng 
System.out.printf(); // Xuất có định dạng, các ký tự định dạng
/* %d: số nguyên
   %f: số thực
      > Mặc định là 6 số lẻ
      > %.3f định dạng 3 số lẻ
   %s: chuỗi   */

Ví dụ: Minh hoạ nhập xuất dữ liệu ra màn hình

package vn.edu.thaynhuom.inputoutput;
import java.util.Scanner;
public class InOut {

    public static void main(String[] args) {
        String s;
        int age;
        Double M;
        Scanner scanner = new Scanner(System.in); //Tạo đối tượng scanner thuộc lớp Scanner
        System.out.print("Insert your name : "); //Lệnh in ra màn hình
        s = scanner.nextLine(); //Nhập chuỗi
        System.out.print("Insert your age: ");
        age = scanner.nextInt(); //Nhập số Nguyên
        System.out.println("Insert your Math: ");
        M = scanner.nextDouble();
        System.out.printf("My name is %s , I %d yaers old and I am %.2f math scoren", s, age, M);
    }
}

LÀM QUEN HÀM TOÁN HỌC (Math) TRONG JAVA

JDK định nghĩa lớp Math cung cấp các hàm về toán học. Bạn không cần phải tạo đối tượng lớp Math vì các hàm trong lớp đó là static, để gọi hàm chỉ đơn giản viết tên lớp Math và tên phương thức cần gọi.

Trước khi gọi các hàm Math, bạn có thể import package để khỏi phải viết đầy đủ tên pack, như sau:

import java.lang.Math;

Math.PI hằng số PI.

double g45 = Math.PI/4;

Math.abs() trả về giá trị tuyệt đối của tham số.

int a = Math.abs(10);  // 10
int b = Math.abs(-20); // 20

Math.ceil() trả về giá trị double là số làm tròn tăng bằng giá trị số nguyên gần nhất.

double c = Math.ceil(7.342);  // 8.0

Math.floor() trả về double là số làm tròn giảm.

double f = Math.floor(7.343);  // 7.0

Math.max() lấy số lớn trong hai số.

int m = Math.max(10, 20);  // 20

Math.min lấy số nhỏ.

int m = Math.min(10, 20);  // 10

Math.pow lấy lũy thừa (cơ-số, số mũ).

double p = Math.pow(2, 3); // 8.0

Math.Math.sqrt() khai căn.

double a = Math.sqrt(9);//3

Math.sin(), Math.cos() sin và cos của góc đơn vị radian.

double s = Math.sin(Math.PI/2);//1

Math.random() sinh số double ngẫu nhiên từ 0 đến 1.

double r = Math.random();

Math.toDegrees() đổi góc radian thành độ.

double goc = Math.toDegrees(Math.PI/2); //90

Math.toRadians() đổi góc đơn vị độ ra radian.

double goc = Math.toRadians(45);//0.7853981633974483

VIDEO HƯỚNG DẪN LÝ THUYẾT

VIDEO HƯỚNG DẪN BÀI TẬP

Đề bài bài số 1. Viết chương trình: Nhập vào hai số nguyên x, y. Xuất ra màn hình tổng, hiệu, tích của hai số trên.

Yêu cầu:

  • Input: Nhập 2 số Nguyên x, y
  • Output: x + y = ?; x – y = ?; x * y = ?

Đề bài bài số 2. Viết chương trình nhập vào hệ số a, b, c của phương trình bậc 2 ax2 + bx + c = 0. Tính giá trị delta của phương trình.

Yêu cầu:

  • Input: Nhập 3 số bất kỳ a, b, c
  • Output: delta = b2 – 4 * a * c

Đề bài bài số 3. Viết chương trình: Nhập các thông tin của 1 sinh viên gồm mã sinh viên, họ tên, tuổi, điểm trung bình. Xuất các thông tin ra màn hình (hãy sử dụng kiểu dữ liệu thích hợp)

Yêu cầu:

  • Input: Nhập MSSV (string), họ tên (string), tuổi (byte), điểm trung bình (float).
  • Output: Dùng lớp hỗ trợ xuất ra màn hình những thông tin vừa nhập bên trên.

Đề bài bài số 4. Viết chương trình nhập vào 2 số từ bàn phím là chiều dài cạnh hình chữ nhật. Tính diện tích, chu vi và xác định cạnh dài nhất trong 2 cạnh.

Yêu cầu:

  • Input: Nhập 2 số bất kỳ a, b
  • Output: Diện tích (s), chu vi (c) và max(a,b).

Add xin cảm ơn, chúc các bạn thành công!

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây