Java学习日记6——类、字段、方法、this的使用

Java学习日记6——类、字段、方法、this的使用

 1.类是Java中的基本元素,作为一类对象的基本原型,封装了一类对象的状态和方法,简言之,就是把变量和函数封装在一个类中。
 2.字段是类的属性,使用变量来表示的,字段又被成为域、域变量、属性、成员变量等。
 3.方法就是类的功能和操作,是用函数来表示的。
关于类、字段和方法的关系在日记2中已经详细介绍过了,详情参见:日记2。本文主要介绍的是类的继承等。

方法中特殊的存在——构造方法(constructor)
 该方法是一种特殊的方法,用来初始化(new)类的一个新对象,构造方法与类是同名的,而且不写返回数据类型。举个例子:为了定义一个新的人物对象张三,且张三的年龄是17岁。那么在person类这个基础上将姓名:张三和年龄:17都传递到新构建的对象中。具体写法如下:

//构建一个类person
public class person{
	String name;
	int age;
	void say(){
		System.out.println("hello! my name is : "+name)
	};
	//下面就是构造方法
	public person(String n,int m) {//与类名同名,加入了参数变量
		name = n;
		age = m;
	}
}
public class persontest
{
	private static void test(person p) {
		// TODO Auto-generated method stub
		p.say();
	}

	public static void main(String[] args)
	{
		String n = "张三";
		int a = 17;
		test(new person(n,a));
	}
}

运行结果是:

hello! My name is :张三

非常重要的概念——重载overload
 概念:多个方法使用了相同的方法名字,但是程序在编译执行时依旧可以准确的区分每个方法不出错的执行。这就需要这些方法的签名不同,或者是参数个数不同,或者是参数类型不同,通过重载就可以实现多态(前面的文章已经讲过,可以点击这里查看其定义)。

this的三种使用

 1.解决局部变量和字段同名的问题,举例如下:

//构建一个类person
public class person{
	String name;
	int age;
	void say(){
		System.out.println("hello! my name is : "+name)
	};
	//下面就是构造方法
	public person(String name,int age) {//与类名同名,加入了参数变量
		this.name = name;
		this.age = age;
	
}

 上面代码中,this.name和this.age表示的类的变量name和age,也就是public class person{}中的name和age。没有this的name和age则表示的是当前局部的name和age,也就是public person(String name,int age){}语句中的name和age。注意两者的区别。
 2.调用另一个构造方法(在一个构造方法中调用另一个构造方法)
调用本类中另一种形式的构造函数,这种情况下,this语句必须放在构造方法的最开始,也就是第一句。

person()
{
	this.("张三",17);//调用另一个构造方法,其中张三和17都是需要传递的参数
	...
}

 当一个类内部的构造方法比较多时,可以只书写一个构造方法的内部功能代码,然后其他的构造方法都通过调用该构造方法来实现,这样既保证了所有的构造方法是统一的,也降低了代码的重复。
 3.使用this来访问字段和方法
 例如例程中say()方法:

//第一种不加this
	void say(){
		System.out.println("hello! my name is : "+name)
	};
//第二种加this
	void say(){
		System.out.println("hello! my name is : "+this.name)
	};
}

 这里的name和this.name实际都是指类中的变量name,所以是一样的,加或者不加都可以。

如果你对Java有兴趣,可以了解一下前面几期的基础知识!下面附上链接:

Java编程基础认知:Java学习日记1——基础认知
Java面向对象编程认识:Java学习日记2——面向对象编程认知
Java程序的基本结构认识:Java学习日记3——程序类型与构成认知
Java的输入输出方法总结:Java学习日记4——Java输入输出方法总结
Java的数据类型、变量、常量、运算符:Java学习日记5——数据类型、变量、常量、运算符、数组

你可能感兴趣的:(Java学习日记)