java 面向对象
变量默认初始值
数据类型 | 默认值 | 说明 |
---|---|---|
byte,short,int,long | 0 | 整型零 |
float,double | 0.0 | 浮点零 |
char | ‘’ | 空串 |
boolen | false | 逻辑假 |
string | null | 空值 |
####参数
1.值参数
2.引用参数:数组或其他引用类型,为引用
3.不定长参数:权限修饰符 返回值类型 方法名(参数类型… 参数名),参数类型和参数名之间为三个点。
构造方法
无参:
class Book{
public Book(){ //(无参)构造方法
}
}
有参:
class Book {
public Book(int args){ //有参构造方法
//对成员变量进行初始化
}
}
this 指针
当类中的成员变量与成员方法中的参数重名时:
public class BorrowABook2 { // 创建借书类
String name; // 属性:书名
public BorrowABook2(String name) { // 参数为name的构造方法
this.name = name; // 将参数name的值付给属性name
}
}
this关键字除了可以调用成员变量或成员方法之外,还可以作为方法的返回值。 例如,在项目中创建一个类文件,在该类中定义Book类型的方法,并通过过this关键字进行返回。
public class Book{
public getBook(){
return this; //返回Book类引用
}
}
静态变量与静态方法
不同的类之间需要对同一个变量进行操作(可以认为是一个共享的变量)
类名.静态类成员
有些时候不想或者无法创建类的对象时,还要调用类中的方法才能够完成业务逻辑,这种情况下就可以使用静态方法
类名.静态方法();
代码块的执行顺序 创建静态代码块、非静态代码块、构造方法、成员方法,查看这几处代码的调用顺序。代码如下:
public class StaticTest {
static String name;
// 静态代码块
static {
System.out.println(name + "静态代码块");
}
// 非静态代码块
{
System.out.println(name + "非静态代码块");
}
public StaticTest(String a) {
name = a;
System.out.println(name + "构造方法");
}
public void method() {
System.out.println(name + "成员方法");
}
public static void main(String[] args) {
StaticTest s1;// 声明的时候就已经运行静态代码块了
StaticTest s2 = new StaticTest("s2");// new的时候才会运行构造方法
StaticTest s3 = new StaticTest("s3");
s3.method();// 只有调用的时候才会运行
}
}
####类主方法
语法:
public static void main(String[] args){
// 方法体
}
特点:
1.主方法是静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的。
2.主方法没有返回值。
3.主方法的形参为数组。其中 args[0]~args[n] 分别代表程序的第一个参数到第n+1个参数,可以使用 args.length 获取参数的个数。