类变量(静态变量)
类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外。
静态变量在第一次被访问时创建,在程序结束时销毁。
package 基础语法; import java.io.*; public class 静态变量 { //salary是静态的私有变量 private static double salary; // DEPARTMENT是一个常量 public static final String DEPARTMENT = "数据分析师"; public static void main(String[] args){ salary = 10000; System.out.println(DEPARTMENT+"平均工资:"+salary); } }
Java修饰符
再次提醒!!!!!!!!!!
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
public : 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
private
私有访问修饰符是最严格的访问级别,所以被声明为 private 的方法、变量和构造方法只能被所属类访问,并且类和接口不能声明为 private。
声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问。
public class Logger { private String format; public String getFormat() { return this.format; } public void setFormat(String format) { this.format = format; } }
实例中,Logger 类中的 format 变量为私有变量,所以其他类不能直接得到和设置该变量的值。为了使其他类能够操作该变量,定义了两个 public 方法:getFormat() (返回 format的值)和 setFormat(String)(设置 format 的值)
public
被声明为 public 的类、方法、构造方法和接口能够被任何其他类访问。
如果几个相互访问的 public 类分布在不同的包中,则需要导入相应 public 类所在的包。由于类的继承性,类所有的公有方法和变量都能被其子类继承。
projected
子类与基类在同一包中:被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问;
子类与基类不在同一包中:那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法。
这个最难理解,详情点击了解
修饰符
这里只介绍一下static
package 基础语法;
public class 修饰符static { private static int numInstances = 0; protected static int getCount() { return numInstances; } private static void addInstance() { numInstances++; } 修饰符static() { 修饰符static.addInstance(); } public static void main(String[] arguments) { System.out.println("Starting with " + 修饰符static.getCount() + " instances"); for (int i = 0; i < 500; ++i){ new 修饰符static(); } System.out.println("Created " + 修饰符static.getCount() + " instances"); } }
运算符
不管是Java还是Python,或者是c运算符都是大同小异,我们要了解的可能和Python的有所不同。
这里要强调判断的是递增运算符合递减运算符,前++是先运算后赋值,并且改变原来的那个变量值。(原来的变量也改变了)
后++是先赋值后运算,那就是先把这个值打印出来,最后进行运算(改变最后本身值,原来的那个值也改变了)
package 基础语法;
public class 运算符 { public static void main(String[] args) { int a = 10; int b = 20; int c = 25; int d = 25; System.out.println("a + b = " + (a + b) ); System.out.println("a - b = " + (a - b) ); System.out.println("a * b = " + (a * b) ); System.out.println("b / a = " + (b / a) ); System.out.println("b % a = " + (b % a) ); System.out.println("c % a = " + (c % a) ); System.out.println("a++ = " + (a++) ); System.out.println("a-- = " + (a--) ); // 查看 d++ 与 ++d 的不同 System.out.println("d++ = " + (d++) ); System.out.println("++d = " + (++d) ); System.out.println(++d); } }
特别需要注意的是三元运算符
在之前的文章里面我也详细的介绍了
instanceof 运算符
String name = “James”;
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
class Vehicle {} public class Car extends Vehicle { public static void main(String[] args){ Vehicle a = new Car(); boolean result = a instanceof Car; System.out.println( result); } }
true
Java运算符优先级
Java的基础语法不比得Python的简单易懂,我们这里总结了两篇,才结束,总的来说第一篇是泛泛而谈,第二篇是基础加实战操作,上图解释,希望大家在今后的学习中不断运用。
后期我们可能要学习方法和流程控制与语言结构。
每文一语
生活就是让我们感受快乐的,至于更高境界的快乐那就是意义所带来的愉悦了。