Java 修饰符和运算符

一,修饰符

Java中的修饰符分为两类访问修饰符和非访问修饰符。

修饰符用来定义类、方法或者变量,通常放在语句的最前端。

public class Demo {

       public int temp;
       private static  int staticTemp;
       public void test () {

        }

}

访问控制修饰符

Java中可以对类,方法,构造方法,变量进行访问控制。Java支持四种不同的访问权限。

类的访问修饰符一般是public或默认。

  • public:

    • 类成员被声明为 public 可以被任何其他类访问,无论是同一个包中的类还是不同包中的类。
  • protected:

    • 类成员被声明为 protected 可以被同一个包内的其他类访问,也可以被其他包中的子类访问(即继承该类的类)。
  • default (no modifier):

    • 如果没有指定任何访问修饰符,则默认为包私有(package-private)。这意味着类成员只能被同一个包中的其他类访问,而对于不同包中的类则不可见。
  • private:

    • 类成员被声明为 private 只能被同一个类内部的其他成员访问,即仅限于当前类中可见。
  1. 如果父类中的方法被声明为 public,那么子类中继承的方法也必须是 public。这意味着子类中不能降低访问权限,而只能保持或提高访问权限。

  2. 父类中声明为 protected 的方法可以被子类继承。在子类中,可以将继承的 protected 方法保持为 protected,也可以提升为 public,但不能降级为 private

  3. 父类中声明为 private 的方法是私有的,子类无法继承这样的方法。因此,私有方法对子类是不可见的,子类中不能直接调用或覆盖父类的私有方法。

非访问修饰符

  1. static修饰符

    • static 修饰类方法和类变量(静态方法和静态变量)。
    • 静态方法和静态变量属于类而不是实例,在类加载时就被分配内存,可以通过类名直接访问,而不需要创建类的实例。
  2. final修饰符

    • final 修饰类、方法和变量。
    • 当用 final 修饰一个类时,该类不能被继承,即它是不可扩展的。
    • 当用 final 修饰一个方法时,子类不能覆盖(重写)这个方法,即它是不可重写的。
    • 当用 final 修饰一个变量时,这个变量成为常量,其值不能被修改,常量名通常大写。
  3. abstract修饰符

    • abstract 修饰抽象类和抽象方法。
    • 抽象类不能被实例化,它的存在主要是为了被子类继承和实现。
    • 抽象方法没有方法体,只有方法签名,需要子类提供具体的实现。
  4. synchronized和volatile修饰符

    • synchronized 用于实现线程同步,它可以修饰方法或代码块,确保在多线程环境下方法或代码块的安全执行。
    • volatile 用于声明变量,确保多个线程能正确处理该变量。volatile 变量的值在每次被线程访问时,都会强制从内存中重新读取,而不是使用缓存。

二,运算符

Java运算符大概可以分为六种。

  1. 算术运算符:用于执行基本的数学运算,如加法、减法、乘法、除法、取模等。例如:+(加法)、-(减法)、*(乘法)、/(除法)、%(取模)、++ (自增)、--(自减)。

  2. 关系运算符:用于比较两个值之间的关系,返回布尔值 truefalse。例如:>(大于)、<(小于)、==(等于)、!=(不等于)、>=(大于等于)、<=(小于等于)。

  3. 位运算符:用于对整数类型的数据进行位运算。位运算是直接对二进制位进行操作的。例如:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移位)、>>(右移位)>>>(右移位补零)。

  4. 逻辑运算符:用于对布尔类型的变量或表达式进行逻辑运算。例如:&&(逻辑与)、||(逻辑或)、!(逻辑非)。

  5. 赋值运算符:用于给变量赋值。例如:=, +=, -=, *=, /=, %= 等。

  6. 其他运算符:包括三元运算符 ? :,instanceof 运算符(用于判断对象是否是某个类的实例),以及一些特殊的运算符和语法糖。 

Java运算符优先级

以下是Java中常见运算符的优先级,从高到低的顺序:

  1. 后缀运算符expr++expr--
  2. 一元运算符++expr--expr+expr-expr!expr~expr
  3. 乘性运算符*/%
  4. 加性运算符+-
  5. 移位运算符<<>>>>>
  6. 关系运算符<<=>>=instanceof
  7. 相等运算符==!=
  8. 按位与运算符&
  9. 按位异或运算符^
  10. 按位或运算符|
  11. 逻辑与运算符&&
  12. 逻辑或运算符||
  13. 条件运算符? :
  14. 赋值运算符=+=-=*=/=%=&=|=^=<<=>>=>>>=
  15. 逗号运算符,(最低优先级)

运算符的优先级决定了表达式中运算符的执行顺序,如果有需要,可以使用圆括号来改变表达式的计算顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值