一、方法之间的调用:
在一个方法里面可以使用另一个方法这个叫做方法的调用
public class Test {
public void one1(){
System.out.println(1);
System.out.println(2);
System.out.println(3);
this.one3();
}
public void one2(){
this.one3();
System.out.println(7);
System.out.println(8);
System.out.println(9);
}
public void one3(){
System.out.println(4);
System.out.println(5);
System.out.println(6);
}
public static void main(String[] args) {
Test t = new Test();
t.one1();
}
}
注意:1.当一个类中调用自己类的方法时可以用this.方法名(参数列表)
2.当一个方法中调用自己的时候有可能会出现StackOverflowError(栈内存溢出错误)
二、方法的重载:
在一个类中多个方法名相同,但参数列表不同,这样就构成了方法的重载
参数列表不同又分为下面几种:
(1).类型不同
(2).个数不同
(3).顺序不同
public class Test {
public void one1(){
System.out.println("没有值传进来");
}
public void one1(int x){
System.out.println("传进来"+x+"的值");
}
public static void main(String[] args) {
Test t = new Test();
t.one1();
t.one1(5)
}
}
为啥要使用方法的重载呢?
让我们在定义方法的时候可以将多个共同作用的方法的名称统一化管理,方便使用和记忆
三、构造方法:
作用:(1).是用来创建对象的
(2).可以在创建对象的时候给属性赋值
public Person(int age,String name){
this.age = age;
this.name = name;
}
public static void main(String[] args) {
//创建对象 给属性赋值
Person p = new Person(10,"张三");
}
写法:(1).不写返回值
(2).方法名与类名同名(区分大小写)
(3).可以不写,系统会默认提供一个空参的构造方法,如果自己声明了一个构造方法,则会 覆盖系统默认提供的构造方法,如果还需要使用无参构造方法则需要重新再写一个(方法的重载)
构造方法的重载:为了让赋值的选择更加的灵活多变
注意:如果参数列表里的参数名跟属性名重名可以使用this.属性名来指代属性
public class Person {
public String name;
public int age;
//构造方法给属性赋值
public Person(int age,String name){
this.age = age;
this.name = name;
}
//构造方法的重载
public Person(String name){
this.name = name;
}
public Person(){
System.out.println("空参的");
}
public void test(){
System.out.println("此人是:"+this.name+"--年龄是:"+this.age);
}
public static void main(String[] args) {
//创建对象
Person p = new Person(10,"张三");
p.test();
Person p1 = new Person("李四");
p1.test();
}
}
构造方法之间的调用:
public class A {
public String name;
public int age;
public String a;
public String b;
public String c;
public A(int age,String name,String a,String b,String c){
this.age = age;
this.name = name;
this.a = a;
this.b = b;
this.c = c;
}
public A(int age,String name){
this(age,name,"a","b","c");
}
public A(int age){
this(age,"张三");
}
public A(String name){
this(30,name);
}
public A(){
this(30,"张三","a","b","c");
}
public static void main(String[] args) {
A a = new A(40);//构造方法之间的互相调用不会产生更多的对象
System.out.println(a.name+"-"+a.age);
}
}
注意:构造方法之间的互相调用不能出现闭环
本人会定期发表关于Java的相关知识,如果有错误请指出,觉得好请点赞,收藏加关注,谢谢!!