java类与变量(基础系列7)

类最基本的定义我们已经熟悉了,接下来看一下该如何使用现有的类,类有已知类和自定义类。

已知类是java语言自带的类,我们是可以直接拿来用的,但是在用这些类的时候,需要用import关键字进行导包,如果不进行导包,编译器就会报错,但是当你用的类在java.lang这个包下面的时候,不需要进行导包。

举例:String类在java.lang这个包下面,所以不需要导入,Random类在java.util这个包下面,要进行导包。

import java.util.Random;

public class ClassDemo {
 public static void main(String[] args) {
   String string = new String();
   Random random = new Random();
 }

}

我们自定义的类,当在同一个目录下自己创建的类,可以直接使用创建类的实例,当在不同包下是,使用其他包下面的类之前也要用import关键字进行引入,
每一个类的第一行代码,都是package **;这样的代码只能有一句,并且必须在第一行。

变量

变量是能存储计算结果或者表示值得抽象概念。

定义变量的语法格式:
修饰符可以省略,也可以是public、protected、private、static、final,其中呢public、protected、private三个只能出现其中一个,可以与static、final组合起来使用。
变量的类型可以是基本类型,也可以是引用数据类型。
变量名是一个合法的标识符即可,规范是首单词小写,后每个单词首字母大写。例如:className
下面这些都是合法的:
public int s;
private static String classNumber = “001”;
static final int a = 2;

变量分为成员变量和局部变量。

成员变量:所描述的是这个类的一些属性或状态。成员变量又分为类变量和实例变量。类变量就是用static修饰的变量,没有用static修饰的就是实例变量。类变量从这个类的准备阶段开始就存在,直到系统完全销毁这个类才消失;实例变量从该类的实例被创建时开始存在,直到系统销毁这个类的实例。也就是说:类变量随着类的存在而存在,实例变量随着实例的存在而存在。实例变量可以访问类变量,同一个类的所有实例访问类变量时,访问的是类本身的同一个类变量。

public class FileldDemo {
 static String className = "计算机161";// 类变量
 int age = 20;// 实例变量

 public static void main(String[] args{
   FileldDemo fd = new FileldDemo();
   fd.age = 21;
   fd.className = "计算机162";
   System.out.println(fd.age);// 21
   System.out.println(fd.className);// 计算机162
   FileldDemo fd1 = new FileldDemo();
   System.out.println(fd1.age);// 20
   System.out.println(fd1.className);// 计算机162
 }

}

局部变量有形参、方法局部变量、代码块局部变量。形参是在定义方法名时定义的变量,形参的作用域在整个方法内有效;方法局部变量是在方法体内部定义的局部变量,作用域从定义的地方生效,到该方法结束时失效;代码块局部变量是由代码块定义的局部变量,作用域从定义该变量的地方生效,到该代码块结束时失效。

public void add(int a,int b) {//a b为形参局部变量
   int sum = a+b;//sum为方法局部变量
   for(int i = 0;i<4;i++) {//i为代码块局部变量,for循环结束,i失效
     sum = sum+i;
   }
 }

java中一个类里面不能定义两个同名的成员变量,一个方法中不能定义两个同名的局部变量,java中允许局部变量和成员变量同名,如果成员变量和方法内的局部变量同名,在一个方法内使用成员变量时,需要使用this关键字进行区分,在方法中,变量采用的是就近原则。

在定义变量的时候,我们要根据变量的作用范围大小进行定义变量,如果变量是用来描述类或者对象的固有信息,就需要定义为类变量,定义局部变量时,局部变量的作用范围越小,在内存中停留的时间就越短,程序运行的性能就越好。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_41177827/article/details/81429741
今日推荐