提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
JAVA01
2、基本概念
(1)变量
可以修改内容的量。可以看成一个房间,房间里原先放的是水,我可以让他放别的,比如说番茄
定义一个变量
修饰符 数据类型 变量名 = 变量值;
public int a; //定义一个叫做a的变量,但是里面什么都没放,默认为0
public int b = 5; //定义一个变量b,值为5
b = 10; //我把值改成10了
像之前Teacher的name也是一个变量
我们调用他,如果是在本类里,直接调用即可
main方法里通过对象调用
class Teacher{
public int a = 10;
public void w(){
System.out.println(a); //本类中的方法调用直接调用
}
}
public class Testt(){
public sttatic void main(String args[]){
System.out.println(new Teacher().a); //通过对象调用
}
}
变量的分类
写在类里的叫成员变量
写在方法里的叫局部变量
被static修饰的是静态变量,类变量
变量的作用域
作用域在一个大括号内
class A{
static int b;
int a = 2; //a是成员变量,作用域是整个类
public void m(){
int a = 10; //这个a是局部变量,作用域是整个方法
System.out.println(a); //输出10
}
System.out.println(a); //输出2
}
变量的初始化
public class T{
int a = 10;
int b = 9;
T(){
a = 67;
b = 98;
}
{a = 5;
b = 7;}
}
可以看到这个类总共有两个成员变量。当我new一个对象的时候
T t = new T();
- 首先在内存中开辟一块空间,放a和b,先给他们默认值(a = 0,b = 0 )
- 然后赋初始值,a=10,b=9
- 执行非静态代码块,a=5,b=7
- 执行构造器, a=67,b=98
(2)常量(final)
常量就是不可以改变值的量,放了水就永远都是水
public static final
定义一个常量
final 数据类型 常量名 = 常量值;
final String job = "教师";
如果试图重新赋值,程序会报错。
(3)标识符
当我们要定义一个变量或者常量……等的时候,不可避免的就要给这些量取名,不同的语言取名有不同的规范。java大概有一下规范
- 标识符只能由字母(大小写)、数字、下划线(_)、美元符号($)组合而成
- 不能由数字开头
- 类名、接口名必须首字母大写,驼峰原则
- 常量:全部大写
- 包名:全部小写
- 变量名,方法名,对象名:首字母小写,驼峰原则、
(5)包
相当于文件夹
(6)类
(7)类的访问权限
public
公开的,所有的类都可以访问被public修饰的成员
default
protected
private
只有本类可以访问被private修饰的成员,连本类的子类都不能访问被private修饰的成员
(8)类的其他修饰符
static
static又被称为类修饰符。被修饰的属性,方法被称为类成员。
static的优点
我们之前的成员属性,成员方法是如何才能调用的,都要先创建一个类的对象,通过对象去调用他才行。有时候会觉得这种操作十分麻烦。
如果一个成员或者方法被static修饰他以后,我们就可以不用创建对象就调用他了。我们通过类名调用他。
在jdk中,如果我们想使用圆周率
System.out.println(Math.PI);
这其实是调用了Math类的一个类变量PI
。
同理,静态成员方法也是如此。
被static修饰后的区别
- 一个属性被static修饰后就是类成员属性,她的作用域是全局的。这个变量不再单独属于某个对象了,他属于整个类,如果有一个对象改变了该变量的值,那么其他对象的这个变量的值也会随着改变。
- 创建对象时,
abstract
final
当一个类不可能有子类的时候,将他标识为final类,用来实现固定的功能。
- 被final修饰的类不能被继承。(绝代了)
- 被final修饰的成员变量其实是个常量,只要经过了一次显式赋值,就不能再被赋值了。
- 我们可以在子类中重写父类的方法,但如果这个父类的方法被final修饰了,那么这个方法就不能被重写了。
- 由3我们可以推断出,abstract和final不能修饰同一个类,因为abstract要求她的方法一定要被子类实现,但是final却要求他不能有子类,冲突了。