类包含的变量类型:
-
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁
- 成员变量:成员变量是定义在类中的,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:变量类也在声明类之中,方法体之外,但必须声明为static类型。
构造方法:
每个类都有构造方法,如果没有显示的为类定义构造方法,Java编译器将为该类提供一个默认的构造方法。在创建一个对象的时候,至少要调用一个构造方法。构造方法必须与类名相同,一个类可以有多个构造方法。
源文件声明规则
当一个源文件中定义多个类,并且还有import语句和package语句时,注意:
- 一个源文件中只能有一个public类
- 一个源文件可以有多个非public类
- 源文件的名称应该和public类的类名保持一致。
- 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
- 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中的最前面。
import java.io.*;
public class Employee{
String name;
int age;
String designation;
double salary;
//类的构造器
public Employee(String name){
this.name=name;
}
//设置age的值
public void emAge(int emAge){
age=empAge;
}
public void empDesignation(String emDesig){
designation=empDesig;
}
public void empSalary(double empSalary){
salary=empSalary;
}
public void printEmployee(){
System.out.println("名字"+name);
System.out.println("年龄"+age);
System.out.println("职位"+designation);
System.out.println("薪水"+salary);
}
}
import java.io.*;
public class EmployeeTest{
public static void main(String[] args){
Employee empOne=new Employee("B1");
Employee empTwo=new Employee("B2");
//调用这两个对象的成员方法
empOne.empAge(26);
empOne.empDesignation("高级程序员");
empOne.empSalary(1000);
empOne.printEmployee( );
empTwo.empAge(21);
empTwo.empDesignation("高级程序员");
empTwo.empSalary(1000);
empTwo.printEmployee( );
}
}
Java基本数据
- 内置数据类型
- 引用数据类型
Java支持的变量类型
- 局部变量:类的方法中的变量
'''
局部变量
1.局部变量声明在方法、构造方法或者语句块中
2.局部变量在方法、构造方法、或者语句块被执行的时候创建,当他们执行结束之后,变量将会被销毁’
3.访问修饰符不能用于局部变量;
4.局部变量只在声明它的方法、构造方法或者被语句块中可见
5.局部变量是在栈上分配的
6.局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用
'''
- 实例变量:独立于方法之外的变量,没有static修饰
'''
实例变量
1.实例变量声明在一个类中,但在方法、构造方法和语句块之外
2.当一个对象被实例化之后,每个实例变量的值就跟着确定
3.实例变量在对象创建的时候创建、在对象被销毁的时候销毁
4.实例变量的值至少应该被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息
5.实例变量可以声明在使用前或者使用后
6.访问修饰符可以修饰实例变量
7.实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见
8.实例变量具有默认值,变量的值可以在声明时指定,也可以在构造方法中指定
'''
- 类变量:独立于方法之外的变量,用static修饰(静态变量)
'''
类变量
1.类变量也成为静态变量,在类中以static关键字声明,但必须在方法之外
2.无论一个类创建了多少个对象,类只拥有类变量的一份拷贝
3.静态变量除了被声明为常量外很少使用,静态变量是指声明为public/private,final和static类型的变量。静态变量初始化后不可改变
4.静态变量在第一次访问时被创建,在程序结束时销毁。
'''
package demo;
public class Test1 {
//salary是静态的私有变量
private static double salary;
//DEPARATMENT是一个常量
public static final String DEPARTMENT="开发人员";
public static void main(String[] args){
salary=10000;
System.out.println(DEPARTMENT+"平均工资:"+salary);
}
}
Java修饰符
Java修饰符分为两类:
- 访问修饰符
- 非访问修饰符
访问控制修饰符
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4中不同的访问权限。
- default(即默认,什么也不写):在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
- private在同一类内可见,使用对象:变量、方法。
- public:对所有类可见,使用对象:类、接口、变量、方法。
- protected:对同一包内的类和所有子类可见。使用对象:变量、方法
非访问修饰符
为了实现一些其他的功能,Java也提供了许多非访问修饰符
- static修饰符,用来修饰类方法和类变量
- final修饰符,用来修饰类、方法和变量,final修饰的类不能被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
- abstract修饰符用来创建抽象类和抽象方法
- synchronized和volatile修饰符,主要用于线程变成。