面向对象——普通方法及构造方法及带参方法和方法重载

普通方法

  类的方法是为了完成某个特定的应用程序功能存在的,我们要实现程序的某些功能的时候,一般都是某些类的功能,比如上一篇中的学生类,有一个展示学生信息的方法,我们就可以把它放到学生类里面(因为只要是学生,他就都有这个展示信息的功能),而方法是有返回值的,也可以没有返回值,返回类型为void。有返回值的时候,方法最后必须return 返回值。如:

//这是一个show方法,只是输出hello,返回值为void
public void show(){ System.out.print("hello"); }

  

//这个show方法一样可以输出hello,但是他返回类型是String,所以必须return 一个String类型的东西,不一定是s,只要是String类型的就可以,比如return ""; 一样可以执行,但是测试输出的时候,输出的不是hello,因为return返回什么,就给什么。
public String show(){ String s="hello" return s; }

构造方法和带参构造方法

  每一个类都会默认有一个无参的构造方法,构造方法的方法名是和类型一致的,构造方法是缺少返回值的,如:

//Student类的默认无参构造方法Student()
public class Student{ public Student(){ } }

  无参的构造方法写不写都是存在的,但是如果写了一个带参的构造方法,默认的无参构造方法就会被带参的构造方法覆盖掉,这时候如果还想使用无参的构造方法,就需要手动写出来。

  一般更多倾向于使用带参的构造方法

  带参构造方法的意义就在于创建对象的时候就可以直接初始化对象,省去代码的繁琐,其实我们每一次创建一个对象,都在调用构造方法,例如:

public class Text {

	public static void main(String[] args) {
         //new 后面的 Student()就是调用了Student类的构造方法 Student s=new Student(); s.name="张三"; s.age=18; s.num=2014132209; s.score=100; s.showInfo(); } }

  所以我们可以写一个带参的构造方法,在创建对象的时候直接赋值初始化对象,减少代码量,如:

public class Student {
	public String name;//学生姓名
	public int age;//学生年龄
	public int num;//学生学号
	public float score;//学生成绩
	
     public Student() {} public Student(String name, int age, int num, float score) { super(); this.name = name; this.age = age; this.num = num; this.score = score; } public void showInfo(){ System.out.println("姓名:"+name+"年龄:"+age+"学号:"+num+"成绩:"+score); } }

  这就写了一个带参的构造方法,我们在main方法中创建对象的时候就可以直接赋值了:

  一样的效果,更简单的配方,这就是带参构造方法的好处。

普通带参方法

  普通带参方法其实就是main方法中你调用这个普通方法的时候,你给我一个东西,我在我的方法里面有使用到你给我的这个东西(参数)进行运算或者判断等等实现具体的功能,再返回给你你需要的东西,在之后的具体项目中再深入体会。

  带参方法有一下注意事项:

  1.方法定义处,参数叫作形式参数(形参),主要来约束参数的类型。

  2.形参名字可以随意(但要具有意义),遵循驼峰命名规则---studentName;

  3.方法调用出处,参数叫作实际参数(实参),名字也要有意义,遵循驼峰规则。

  4.形参和实参类型必须一致,名字可以不一致,也可以一致。

  5.方法有没有返回值,和方法有没有参数,没有任何关系。

  6.方法参数可以有多个,多个参数之间用逗号隔开。

  7.多个形参和实参的数量要一致,数据类型也要一致。

  当参数传递为基本数据类型的时候,参数变化不保留。

  当参数传递为引用数据类型的时候,参数变化会保留。Stiring和数组都是引用数据类型。

 

方法重载

  就是一个类中的方法,允许出现多个同名但不同参的方法,叫作方法重载,主要为了方便调用方法的时候需要传参的类型可能有时多有时少,但是方法的意义都是一样的,增加代码的重用性和可阅读性,如:

public Student(String name, int age, int num, float score) {
		super();
		this.name = name;
		this.age = age;
		this.num = num;
		this.score = score;
	}
	public Student(int age, int num, float score) {
		this.age = age;
		this.num = num;
		this.score = score;
	}
	public Student(int num, float score) {
		this.num = num;
		this.score = score;
	}

  

 

猜你喜欢

转载自www.cnblogs.com/EasyInsomnia/p/10054189.html
今日推荐