Java类与对象的实例化、static关键字、private封装、构造方法、this关键字讲解

**JAVA是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。

面向过程注重的是过程,在整个过程中所涉及的行为,就是功能。
面向对象注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来。

简而言之
面向对象就是用代码(类)来描述客观世界的事物的一种方式. 一个类主要包含一个事物的属性和行为。
实例化就是通过new引用类的构造函数创建对象的过程,一个类可以实例化很多个对象,可以使用 . 来访问对象的属性和方法。(注意null,在java中null为空引用不可以进行 . 操作)

static关键字
其可以修饰属性、修饰方法、代码块、修饰类。

注意事项:
1.static修饰属性后,属性就被放入java虚拟机的方法区中(只有一份),之后该属性便是类的共享资源,不属于对象属于类,访问方式为类名.属性(对象.属性会报警告 不建议这样写)
2.static修饰方法后同样也是使该方法属于类而不属于对象,而且可以直接调用静态方法无需创建类的实例。最重要的是可以访问静态成员,并可以改变静态数据成员的值。
3.静态方法不可以访问普通数据成员和普通方法。普通方法可以访问静态的东西。
4…不管是静态方法还是非静态方法其内部都不可以定义静态变量,静态变量只能定义在类内方法外。

封装private
封装就是为了降低代码的管理复杂度,降低调用者的使用成本。但必须要有get和set方法。

构造方法
new过程:1.为对象分配内存空间。2.调用对象的构造方法。

注意事项
1.如果类中没有提供任何的构造函数,那么编译器会默认生成一个不带有参数的构造函数
2.若类中定义了构造方法,则默认的无参构造将不再生成.
3.构造方法支持重载. 规则和普通方法的重载一致.

this关键字
表示当前对象的引用。用此来访问对象的字段和方法。

注意事项:
1.静态方法内不可以使用this
2.this可以通过 . 访问普通数据成员普通方法和另外一个构造方法(必须放在第一行格式 this() ),不建议用this访问静态的东西。

代码块执行顺序:
1.静态代码块{静态属性 静态方法(多个静态方法看定义顺序)}
2.实例代码块{实例数据成员 实例代码块(看定义顺序)}
3.构造函数**

扫描二维码关注公众号,回复: 11238424 查看本文章
import java.util.Scanner;

 class Calculator {
    private int num1;
    private int num2;
    private static int num3;

    public int getNum1() {
        return num1;
    }

    public void setNum1(int num1) {
        this.num1 = num1;
    }

    public int getNum2() {
        return num2;
    }

    public void setNum2(int num2) {
        this.num2 = num2;
    }

    public int add() {
        return num1 + num2;
    }

    public int minus() {
        return num1 - num2;
    }

    public int ride() {
        return num1 * num2;
    }

    public float remove() {
        return  (float)num1 / num2;
    }

    public Calculator() {

    }

    public Calculator(int num1, int num2) {
        setNum1(num1);
        setNum2(num2);
    }

}
public class Tset {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("利用第一种构造方法" + " new Calculator()");
        Calculator cal = new Calculator();
        int num1 = scan.nextInt();
        int num2 = scan.nextInt();
        cal.setNum1(num1);
        cal.setNum2(num2);
        System.out.println(cal.remove());
        System.out.println("利用第二种构造方法" + " new Calculator(4,7)");
        Calculator cal2 = new Calculator(4,7);
        System.out.println(cal2.ride());
    }
}

猜你喜欢

转载自blog.csdn.net/Shangxingya/article/details/105025896