构造方法
方法是解决问题的手段,就是为完成某个功能而存在;方法必须定义后才能够调用。
方法必须定义在类当中,不能在某个方法中定义方法。
package com.xzit.domain;
public class Student {
private String code;
private String name;
private int age;
private String sex;
public Student() {
}
public Student(String code,String name,int age,String sex) {
this.age = age;
this.code = code;
this.name = name;
this.sex = sex;
}
public void introdut() {
/**
* 自我介绍的实例方法
*/
System.out.println("我叫"+name);
System.out.println("我的学号是"+code);
System.out.println("我今年"+age);
System.out.println("我是"+sex+"同学");
}
/**
朗读的内容
*/
public void readContext(String content){
System.out.println("我是"+name+"我朗读的内容是\n"+content);
}
}
package com.xzit.test;
import com.xzit.domain.Student;
public class TestMethod {
public static void main(String[] args) {
Student stu0 = new Student("23","令狐冲",26,"男");
Student stu2 = new Student("21","任盈盈",20,"女");
stu0.introdut();//调用方法
stu2.introdut();
stu0.readContext("飞流直下三千尺,\n疑是银河落九天。")
}
}
方法的参数
值类型参数
如果参数是值类型,则参数是拷贝实际数据的副本传递,修改参数实参所存储的原值不会改变。
引用类型参数
如果参数是引用类型,则参数传递的是实际数据的地址引用,修改实参所存储的原值也会改变。
package domain;
public class DataManager{
/**
* 计算n与m的和
* @param n
* @param m
*/
public void countSum(double n,double m) {
n++;m++;
System.out.println("两个数的和是 "+(n+m));
}
}
package test;
import domain.DataManager;
public class TestMethod{
public static void main(String[] args) {
DataManager dm = new DataManager();
int a =5,b=6;
dm.countSum(a, b);
System.out.println(a+b);
}
}
要点:传递值类型在方法中任何更改都不会影响原数据
package domain;
public class Dog {
private String color;//定义狗的颜色变量color
public Dog() {//无参数构造器
}
public Dog(String c) {//定义有参数构造器,填入的参数为狗毛的颜色
this.color = c;
}
public void setColor(String c) {//使用公共的set方法实现对私有属性进行设置值
this.color = c;
}
public String getColor() {//使用公共的get方法实现对私有属性值得访问
return this.color;
}
}
package domain;
public class DataManager{
/**
* 改变狗的毛色
* @param dog01
*/
public void changeColor(Dog dog01) {//创建一个修改狗毛颜色的方法,填入的参数为狗的名字
dog01.setColor("五彩斑斓");//调用公共方法setColor将狗毛颜色改为五彩斑斓
}
}
package test;
import domain.DataManager;
import domain.Dog;
public class TestMethod {
public static void main(String[] args) {
DataManager dm = new DataManager();
Dog dog02 = new Dog("白色");//创建对象dog02,属于Dog类,通过参数构造器将color变成白色
System.out.println("改变之前的颜色是 "+dog02.getColor());//用getColor方法调用dog02的color属性值
dm.changeColor(dog02);//用dm里的changeColor方法来让dog02的颜色变成五彩斑斓
System.out.println("改变之后的颜色是 "+dog02.getColor());
}
}
方法的返回值
如果方法定义后返回值,则必须使用return关键字返回一个值,返回值必须是符合定义的返回类型数据,执行return意味着方法调用结束。
如果方法中使用了多个return则必须保证只有一个return被执行,也就是方法只能有一个返回值
package domain;
public class DataManager {
/**
* 验证年龄是否合法位于0-120之间
* @param age
* @return 合法返回true,否则返回false
*/
public boolean validateAge(int age) {
if(age >= 0 && age<=120) {
return true;
}else
return false;
}
}
package test;
import domain.DataManager;
public class TestMethod {
public static void main(String[] args) {
DataManager dm =new DataManager();
boolean bool = dm.validateAge(156);
System.out.println(bool?"年龄合法":"年龄不合法");
}
}