Java学习_day06_类基础&方法

文章目录

  • 类 & 对象
    • 创建类
    • 创建对象
  • 属性
    • 类属性 & 成员属性
  • 方法
    • 静态方法 & 成员方法
    • 重载
    • 可变形参
    • 递归方法

类 & 对象

类可以理解为模板,而对象可以理解为由模板创建的实例。
一个类通常由属性、方法和构造器组成。
属性通常用来描述对象的特征,例如人的姓名,年龄等。
方法则用来描述对象的行为,例如人的跑步,吃饭等。
构造器则用来初始化对象。

创建类

修饰符 class 类名 {
 属性;
 构造器;
 方法;
}

当修饰符为public时,文件名称必须为类名。

创建对象

类名  对象名  = new 类名();

对象就是通过类的构造器来创建对象,当类中没有定义构造器时,Java会使用默认的类构造器。

属性

属性用来记录模板的特征。就是定义在类中的变量。

修饰符  class 类名{
	修饰符  数据类型  变量名;
}

类属性 & 成员属性

当类的对象的属性都一样时,就可以用static来修饰属性,这样该属性就变成了类属性。类属性是共享的,可以通过类名直接访问,也可以通过对象访问(不推荐)。
当类的对象的属性各不一样时,就不能使用static来修饰属性,这样该属性就是成员属性。成员属性是每个对象所特有的,通过对象访问。
属性根据不同的数据类型,具有不同的默认值。

数据类型 默认值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0
char \u0000
boolean false
引用类型 null
class Chinese{
	static String country;  // 类属性
	String name;   // 成员属性
	int age;   // 成员属性
}
Chinese.country = "中国";
Chinese person1 = new Chinese();
Chinese person2 = new Chinese();
person1.name = "Ethan";
person1.age = 20;
person2.name = "Jack";
person2.age = 21;

方法

方法依赖类,只能定义在类中。用来表示类的行为或功能。

修饰符 返回值类型 方法名(参数列表) throws 异常列表{
	方法体;
}
  • 返回值类型:不可缺失,无返回值时为void
  • 参数列表:可以为空,存在时为数据类型 形参,数据类型 形参…
  • throws 异常列表也是可选的
  • 方法体,当返回值类型不为void时,必须存在return语句,且返回的数据类型和返回值类型一致。

静态方法 & 成员方法

当类中的方法与类的实例对象没无关时,可以利用static修饰该方法,使其变成静态方法。

class Chinese{
//	类变量
	static String country;
//	成员变量
	String name;
	int age;
//	静态方法
	static String printCountry(){
//		静态方法中只能使用类属性,不能使用成员变量
		System.out.println(country);
	}
//	成员方法
	String introduce(){
//		在成员方法中既可以使用成员变量又可以使用类属性
		System.out.println("我的姓名: " + name);
		System.out.println("我的年龄: " + age);
		System.out.println("我的国籍: " + country);
	}
}

public class ChineseTest{
	public static void main(String[] args){
	//	类变量和静态方法的使用
		Chinese.country = "中国";
		Chinese.printCountry();
	//	对象和成员变量和方法的使用
		Chinese chinese1 = new Chinese();
		chinese1.name = "Ethan";
		chinese1.age = 19;
		chinese1.introduce();
}

重载

Java中方法的签名由方法名,形参数据类型和形参数量决定。当方法的名称相同,但是形参数据类型或数量不同时,则方法就发生了重载。Java会根据实参的实际情况(数据类型存在自动转换的情况),寻找最恰当的方法使用。

int add(int a, int b){
	return a + b;
}
int add(int... nums){
	int sum = 0;
	for (int i = 0; i < nums.length; i++) {
		sum += nums[i];
	}
	return sum;
}
double add(double... nums){
	double sum = 0;
	for (int i = 0; i < nums.length; i++){
		sum += nums[i];
	}
	return sum;
}

可变形参

可变形参是指方法的形参数目不确定,在Java内部以数组的方式来存储可变形参。Java中一个方法中只能有一个可变形参,且只能放在形参的最后位置。

数据类型... 参数名
double add(double... nums){
	double sum = 0;
	for (int i = 0; i < nums.length; i++){
		sum += nums[i];
	}
	return sum;
}

String concat(Char sep, String... str){
	String result = "";
	for(int i = 0; i < str.length; i++){
		if( i == 0){
			result += str[i];
		}else{
			result += (sep + str[i]);
		}
	}
	return result;
}

递归方法

递归方法就是在方法体中调用方法自身,递归方法设计时需要注意终止条件或者递归一定要向已知方向递归。

//	斐波拉契数列
public static long fibonacci(int n){
//	终止条件
	if(n <= 1){
		return 1;
	}else{
	// 向终止条件递归
		return fibonacci(n - 2) + fibonacci(n - 1);
	}

你可能感兴趣的:(Java,Java入门,java,学习)