目录
方法
导入参数可以有多个
返回多个参数
方法的重载
方法的继承
方法
一个方法分为访问修饰符,关键字,返回类型,方法名,以及导入参数
示例
public static void main(String[] args) {}
解释:其中public是访问修饰符,static是关键字,void是返回类型,main是方法名,args是导入参数字符串数组
导入参数可以有多个
示例
public static boolean equals(int a,int b) {return a==b;}
解释:这个方法中导入了两个参数,返回一个boolean类型参数
返回多个参数
封装一个类,例如创建一个人类
public static class Person{}
这个人类中有两个属性,一个是年龄,一个是性别,我们分别用int类型和String储存
public static class Person{int age;String sex; }
对于每次使用应该初始化,可以在该类中欧写一个初始化方法
public static class Person{int age;String sex;public Person(){this.age=0;this.sex=null;} }
构造方法
public static Person Handle(int age,String sex) {Person a=new Person();a.age=age;a.sex=sex;return a;}
构造一个叫Handle的方法,导入参数age和sex,在方法中创建了一个Person类型的a变量,这个类型是我们封装的,并对其赋值,最后返回这个类型,达到了同时返回int类型和String类型的目的
整体代码public class Main {public static class Person{int age;String sex;public Person(){this.age=0;this.sex=null;}}public static Person Handle(int age,String sex) {Person a=new Person();a.age=age;a.sex=sex;return a;}public static void main(String[] args) {Person b=Handle(5,"男"); //方法的引用System.out.println(b.age+" "+b.sex);} }
最后输出的结果为5 男,这里为了展示用法
方法的重载
方法的方法名相同,返回类型可以不同,并且参数类型或参数个数不同都可以重载
先写三个构造方法
第一个导入一个int类型参数,返回int类型参数
public static int Method(int a){return a;}
第二个导入boolean类型参数,返回int类型参数
public static int Method(boolean a){return a?0:1; }
第三个导入两个int类型参数,返回double类型参数
public static double Method(int a,int b){return 1.0*(a+b); }
完整代码
public class Main {public static int Method(int a){return a;}public static int Method(boolean a){return a?0:1;}public static double Method(int a,int b){return 1.0*(a+b);}public static void main(String[] args) {int a=Method(5);int b=Method(true);double c=Method(5,5);} }
于是就可以如上调用构造方法,只是简单举个例子
方法的继承
继承中子类拥有父类非private的属性和方法,可以对父类的属性和方法进行扩展,可以用自己的方式实现父类的方法
单继承
public class A{} public class B extends A{}
B继承A
多重继承
public class A{} public class B extends A{} public class C extends B{}
B继承A,C继承B
不同类继承同一个类
public class A{} public class B extends A{} public class C extends A{}
B和C继承A
不允许一个类继承多个类
举例方法继承
首先super调用父类的方法,this调用自己的方法
完整举例代码
class Animal {String a;void name() {System.out.println("animal");} }class Dog extends Animal {void name() {System.out.println("dog");}void name2(){this.name();super.name();} } class Husky extends Dog {int a;void name(){System.out.println("husky");}void name2(){this.name();super.name();} }public class Main {public static void main(String[] args) {Animal a = new Animal();a.name();a.a="动物";Dog b=new Dog();b.name2();b.a="狗";Husky c=new Husky();c.name2();c.a=1;} }
解释:代码中Dog类继承了Animal类,Husky类继承了Dog类,即Dog类可以使用Animal类的属性和行为,Husky类可以使用Dog类的属性和行为,创建Animal对象a,从上到下,首先调用Animal类的name行为,输出animal,使用Animal类的属性为String类型,创建Dog对象b,调用Dog类的name2行为,再调用Dog类的name行为,和Animal类的name行为,继承了Animal类的属性为String类型,创建Husky对象c,调用Husky类的name2行为,再调用Husky类的name行为,和Dog类的name行为,更改了Dog类的属性为int类型