标识符
标识符由字母、下划线、美元符号或数字组成
标识符应以字母、下划线、美元符开头,不能以数字开头
Java 标识符大小写敏感、长度无限制
不能与java的关键字重名
goto 和const虽然从未使用,但也作为java的关键字保留
程序执行过程
Java变量的分类
按照声明的位置划分
局部变量、成员变量
方法体内声明的变量称为局部变量
方法体外,类体内声明的变量称为成员变量
按照所属的数据类型划分
基本数据类型变量、引用数据类型变量
Java中定义了4类8种基本数据类型
逻辑型:boolean
文本型:char
整数型:byte,short,int,long
浮点数型:float,double
Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示
整数类型
类型 |
占用存储空间 |
byte |
1字节 |
short |
2字节 |
int |
4字节 |
long |
8字节 |
浮点类型
类型 |
占用存储空间 |
float |
4字节 |
double |
8字节 |
容量小的类型自动转换为容量大的数据类型 |
|
|
byte,short,char->int->long->float->double
byte,short,char之间不会相互转换,相互运算会转换为int
容量大的数据类型转换为容量小的数据类型,要加上强制转换符
多种类型的数据混合运算时,系统首先自动将所有数据类型转换成容量最大的那一种数据类型,再进行运算
实数常量(如:1.2)默认为double
整数常量(如:123)默认为int
Switch语句中能用short,char,byte,int
形式参数:在方法被调用时用于接收外界输入的数据
实参:调用方法时实际传给方法的数据
面向对象和面向过程举例
我要去新疆
面向过程:我开车,我踩油门,我过河北,我过陕西。。。
面向对象:我命令车去新疆
信息封装在车这个类的内部
我不用去了解车整个开动的过程
对象和类
类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所具有的静态和动态属性,反映到java类中的成员变量和方法
局部变量不会自动初始化,成员变量java会默认初始化
局部变量存放于栈内存中
new出来的对象是放在对内存中overload,方法名都一样,但参数不一样,方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法,调用时,会根据不同参数选择对应的方法。
this关键字
this可以看成是一个变量,它的值是当前对象的引用。Static
堆内存 |
。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。
|
this |
static关键字
static成员变量存放在date seg
在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类所有对象来说,static成员变量只有一份。
static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它。
J2SDK主要的包介绍
Java.lang 里面的类不需要引入直接能用,包含一些java语言的核心类
如String、Math、Integer、System和thread
Java.awt 包含被用来构建和管理应用程序
java.applet 的图形用户界面(GUI)
包含applet运行所需的一些类
java.net 包含执行与网络相关的操作的类
java.io 包含能提供多种输入/输出功能的类
java.util 包含一些实用工具类,如定义系统特性,使用与日期日历相关的函数
java权限修饰符
修饰符 |
类内部 |
同一个包 |
子类 |
任何地方 |
private |
Yes |
|
|
|
default |
Yes |
Yes |
|
|
protected |
Yes |
Yes |
Yes |
|
public |
Yes |
Yes’ |
Yes |
Yes |
重写
在子类中可以根据需要对从基类中继承来的方法进行重写
重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值
重写方法不能使用比被重写方法更严格的访问权限
Java使用supper来引用基类的成份
子类的构造过程中必须调用其基类的构造方法,如果调用supper,必须写在子类构造方法的第一行
如果子类的构造方法中没有显示地调用基类的构造方法,则系统默认调用基类无参数的构造方法。这时,如果基类中没有无参的构造方法,则编译出错。
Object的finalize方法在垃圾收集器回收之前调用的方法。
getClass返回值是Class对象