修饰符与运算符

一、修饰符

Java语言提供了很多修饰符,主要分为以下两类:

  • 访问修饰符
  • 非访问修饰符

1.1、访问控制修饰符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

  • private : 同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
  • default (即默认,什么也不写): 同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
  • protected : 同一包内或不同包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
  • public : 所有类可见。使用对象:类、接口、变量、方法
 

     private

    default

   protected

     public

同一类中

同一包中(子类与无关类)

 

不同包中的子类

  

不同包中的无关类

   

 

1.2、非访问修饰符

  • static 修饰符,用来修饰类方法和类变量。
  • final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
  • abstract 修饰符,用来创建抽象类和抽象方法。
  • synchronized volatile 修饰符,主要用于线程的编程。

二、运算符

2.1 算术运算符

整数变量A的值为10,变量B的值为20

操作符

描述

例子

+

 

 

-

 

 

*

乘法 - 相乘操作符两侧的值

A * B等于200

/

除法 - 左操作数除以右操作数

B / A等于2

取余 - 左操作数除以右操作数的余数

B%A等于0

++

自增: 操作数的值增加1

B++ 或 ++B 等于 21(区别详见下文)

--

自减: 操作数的值减少1

 

变量 ++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。ab的结果都是2

public static void main(String[] args) {
    int a = 1;
    int b = ++a;
    System.out.println(a);//计算结果是2
    System.out.println(b);//计算结果是2
}

变量 ++ :变量a先把自己的值1,赋值给变量b,此时变量b的值就是1,变量a自己再加1a的结果是2b 的结果是1

public static void main(String[] args) {
    int a = 1;
    int b = a++;
    System.out.println(a);//计算结果是2
    System.out.println(b);//计算结果是1
}

2.2、关系运算符

表格中的实例整数变量A的值为10,变量B的值为20

运算符

描述

例子

==

检查如果两个操作数的值是否相等,如果相等则条件为真。

(A == B)为假。

!=

检查如果两个操作数的值是否相等,如果值不相等则条件为真。

(A != B) 为真。

>

检查左操作数的值是否大于右操作数的值,如果是那么条件为真。

(A> B)为假。

<

检查左操作数的值是否小于右操作数的值,如果是那么条件为真。

(A <B)为真。

>=

检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。

(A> = B)为假。

<=

检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。

(A <= B)为真。

2.3、位运算符

下表列出了位运算符的基本运算,假设整数变量A的值为60(0011 1100)和变量B的值为13(0000 1101)

操作符

描述

例子

位与,如果相对应位都是1,则结果为1,否则为0

(A&B),得到12,即0000 1100

|

位或,如果相对应位都是0,则结果为0,否则为1

(A | B)得到61,即 0011 1101

^

位异或,如果相对应位值相同,则结果为0,否则为1

(A ^ B)得到49,即 0011 0001

位非,按位取反运算符翻转操作数的每一位,即0变成1,1变成0。

(〜A)得到-61,即1100 0011

<<

按位左移运算符。左操作数按位左移右操作数指定的位数。

A << 2得到240,即 1111 0000

>>

按位右移运算符。左操作数按位右移右操作数指定的位数。

A >> 2得到15即 1111

>>>

按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

A>>>2得到15即0000 1111

2.4、逻辑运算符

下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假

操作符

描述

例子

&&

称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。

(A && B)为假。

| |

称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。

(A | | B)为真。

称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。

!(A && B)为真。

 

2.5、条件运算符(?:/三元运算符

public class Test {
    public static void main(String[] args){
        int a , b;
        a = 10;
        // 如果 a 等于 1 成立,则设置 b 20,否则为 30
        b = (a == 1) ? 20 : 30;
        System.out.println( "Value of b is : " +  b );
        // 如果 a 等于 10 成立,则设置 b 20,否则为 30
        b = (a == 10) ? 20 : 30;
        System.out.println( "Value of b is : " + b );
    }
}

2.6、instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

String name = "James";
boolean result = name instanceof String; // 由于 name String 类型,所以返回真

 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值