目录
方法
一个方法分为访问修饰符,关键字,返回类型,方法名,以及导入参数
示例
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类型