Java 关键字总结

网友投稿 605 2022-05-29

private 关键字

private ,私有的,一种访问权限修饰符,用来修饰类的成员(包括成员变量和成员方法)

被修饰的成员只能在本类中访问

用法:

private 数据类型 变量名; private 返回值类型 方法名(参数列表){}

public:公共的,访问权限修饰符,用来修饰类、成员变量、成员方法等,被修饰的内容可以在 任意类 中访问

default (包访问级别): 类的成员变量和方法什么修饰符都没有,又叫包修饰符,只有类本身成员和当前包下类的成员可以访问

protected (子类访问级别): 用 protected 修饰的成员变量和方法能被该类的成员以及其子类成员访问,还可以被同一个包中的其他类的成员访问

案例:

Java 关键字总结

A:给成员变量添加 private 修饰后,测试类中将不能直接访问

B:由于 private 的特性,需要在 Student 类中添加访问该属性的方法,供其它类调用

C:属性的操作一般都是取值和赋值,所以添加对应的公共方法: getXxx() 、setXxx(参数)

D:在测试类中通过 getXxx() 和 setXxx(参数) 方法来实现属性的访问

public static void main(String[] args) { Student2 stu = new Student2(); stu.setAge(20); stu.setName("twe"); System.out.println(stu.getAge()); System.out.println(stu.getName()); stu.study(); }

this 关键字

this,表示本类对象的引用,本质是一个对象

每一个普通方法都有一个 this,谁调用该方法,this 就指向谁

用法:

this.属性名; this.方法名(参数);

案例:

package cn.itcast.demo; public class Student2 { private String name = "one"; private int age = 1; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; } public void study() { System.out.println(this.name + " is studying "); } }

final 关键字

final 用于修饰类、方法和变量

修饰类:

表示该类不能被继承

例如,String、System

修饰方法:

表示该方法不能被重写,不能与 abstract 共存

修饰变量:

表示最终变量,即 常量,只能赋值一次;

不建议修饰引用类型数据,因为,对于引用数据类型,即使加了 final,仍然可以通过引用修改对象的内部数据,意义不大

static 关键字

修饰类的成员:

成员变量:类变量

成员方法:类方法

被修饰成员的调用方式:

类名.成员变量名; 类名.成员方法名(参数);

static 修饰成员变量

被本类所有对象共享

随意修改静态变量的值是有风险的,为了降低风险,可以同时用 final 关键字修饰,即公有静态常量(注意命名的变化):

public final static 变量类型 变量名 = 变量值;

static 修饰成员方法

静态方法:

静态方法中没有对象 this,所以不能访问非静态成员

使用场景:

只需要访问静态成员,不需要访问对象状态,所需参数都由参数列表显式提供

volatile 关键字

volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。

而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

一个 volatile 对象引用可能是 null

public class MyRunnable implements Runnable { private volatile boolean active; public void run() { active = true; while (active) { // 第一行 // 代码 } } public void stop() { active = false; // 第二行 } }

通常情况下,在一个线程调用 run() 方法(在 Runnable 开启的线程),在另一个线程调用 stop() 方法。 如果第一行中缓冲区的 active 值被使用,那么在第二行的 active 值为 false 时循环不会停止。

但是以上代码中我们使用了 volatile 修饰 active,所以该循环会停止;

volatile 修饰后,active 一旦发生变化,会被所有线程知道

synchronized 修饰符

synchronized 关键字声明的方法同一时间只能被一个线程访问,用于保证线程安全

synchronized 修饰符可以应用于四个访问修饰符

public synchronized void showDetails(){ ....... }

Java

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【精选单品】轻投入、快上手、高灵活性的生产管理系统,让制造企业上云更快一步!
下一篇:UCOS学习笔记——信号量
相关文章