JavaSE-类和对象
一,类
1.1定义语法规则:
访问控制修饰符 class 类名 extends 父类名 implements 接口1,接口2…… {
变量/属性
构造方法
方法
}
1.2注意事项
- 访问控制修饰符publicbu不写时默认为default。
- 当类名用public修饰时,类名必须和文件名保持一致。
- 类名首字母必须大写,并且符合驼峰命名,只能是英文单词或汉语拼音。
- 实现接口必须实现接口中声明的所有方法。
- 一个类只能继承一个父类,但可以实现多个接口。
- 接口可以继承多个父类接口。
1.3访问控制修饰符
1.4包装类
基本类型 | 封装类型:对基本类型做功能增加 |
---|---|
boolean | Boolean |
byte | Byte |
char | Character |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
二,变量/属性
2.1定义语法规则:
访问控制修饰符 数据类型 变量名;
或
访问控制修饰符 数据类型 变量名 = 初始值;
2.2注意事项
- 第一个单词的首字母小写 ,其后单词的首字母大写
三,方法
3.1定义语法规则:
访问控制修饰符 返回值类型 方法名(形参列表){
………
}
3.2注意事项
-
访问控制修饰符有:public、protected、默认(default)、private。
-
返回值可以是任何类型。
-
如果返回值类型为void时,表示方法不返回任何值(不用写return语句了)。
-
如果返回值类型不是void,则方法中必须使用return语句返回对应类型的具体的值。
-
方法名:首字母小写,符合驼峰命名,只能是英文单词或汉语拼音。
-
形参列表:数据类型1 变量1,数据类型2 变量2……。
-
Java中方法不能嵌套。
3.3方法重载
方法重载指的是:同一个类中,方法名相同,参数列表不同的一系列方法。
参数列表不同指的是:参数的个数/参数的类型/参数的顺序(类型的顺序)不同。
public class Dept {
public void fun() {
}
public void fun(int a) {
}
public void fun(String b) {
}
public void fun(int a, String b) {
}
public void fun(String a, int b) {
}
public void fun(int a, int b) {
}
}
3.4构造方法
3.4.1定义语法规则:
访问控制修饰符 类名(形参列表){
……
}
3.4.2注意事项
-
访问控制修饰符可以是:public、protected、默认(什么都不写)、private。
-
方法名:必须和类名完全相同。
-
构造方法也可以重载。
-
形参列表:数据类型1 变量1,数据类型2 变量2……。
-
系统会默认给类提供一个参数为空,方法体为空的构造方法。
-
一旦手工编写了构造方法,系统不不再提供默认的构造方法,记得手动添加参数为空的构造方法。
-
Java编程规范要求,所有的类都必须有一个默认的构造方法。
四,对象
4.1定义语法规则:
new 构造方法名(实参);
或
类名 对象名 = new 构造方法名(实参);
4.2注意事项
- new的意思是强制在堆中开辟内存空间。
- 创建对象时,系统会默认为对象的属性赋一个趋近为零(或null)的值。
- 创建对象时会自动调用一次构造方法。
五,继承
5.1问题导入
继承性是面向对象的第二大主要特征。
class Person {
private String name ;
private int age ;
public void setName(String name) {
this.name = name ;
}
class Student {
private String name ;
private int age ;
private String school ;
public void setName(String name) {
this.name = name ;
}
}
以上两个程序通过代码的比较可以清楚的发现:代码之中存在了重复,这种重复是不可能消除的。针对于每一个简单Java类或者是说其他的任何类,都编写一个链表程序,代码量庞大,而且不方便维护。
5.2注意事项
- 一个类只能继承一个父类,但可以实现多个接口。
- 子类可以获取父类除了private之外的所有属性和方法。
- 所有的Java类都有一个共同的祖先类Object。
- 构造方法不能继承。
- 调用构造方法创建对象时,默认会先调用父类的构造方法。
- 调用构造方法创建对象时,必须先调用父类的构造方法。
- 在子类构造方法中可以通过super关键字显式调用父类的构造方法(默认行为)。
- super();语句必须放在子类构造方法的第一行。
- 接口可以继承多个父类接口。
六,代码块
6.1构造代码块
6.1.1定义语法规则:
{
......
}
6.1.2注意事项
- Java所有的语句都必须写到代码块中,不能直接写到类中,定义语句除外。
- 每创建一个对象,构造代码块就执行一次。
- 创建对象时,先执行构造代码块,再执行构造方法。
6.2静态代码块
6.2.1定义语法规则:
static {
......
}
6.2.2注意事项
- 程序一运行,就会最先执行静态代码块,只会执行一次
6.3Static
6.3.1注意事项
- static可以用来修饰属性和方法。
- static修饰的属性和方法属性类本身,可以通过类名直接使用,也可以通过对象访问(不建议)。
- 普通属性和方法(没有使用static修饰的),只能通过类的对象使用。
- Static修饰的属性属于类本身,类所有的对象都共享静态属性。
- 普通的属性属于对象,每一个对象都有一份拷贝,彼此之间没有任何关系。
Static修饰的属性和方法之间能够直接相互调用。
不使用static修饰的属性和方法之间能够直接相互调用。
Static修饰的属性和方法不能直接调用非static修饰的属性和方法。
Static修饰的属性和方法可以通过类的对象调用非static修饰的属性和方法。
非static修饰的属性和方法能够调用static修饰的属性和方法。