java中的方法

本文详细介绍了Java中的方法,包括方法的定义与调用、构造器的使用、this关键字、静态方法的概念以及子类与父类之间的继承关系。讲解了构造器的规则、参数传递、方法重载以及静态方法的特点,并通过实例展示了如何在子类中调用父类的构造器。此外,还讨论了方法参数的基本类型和引用类型在传递时的区别,以及如何通过构造器和静态方法实现对象的创建和类的初始化。

方法先定义后调用,在main方法外进行定义,在main方法里面进行调用。 

带参数方法定义

注意:方法调用时,参数的数量与类型与定义中的设置相匹配

带参数方法定义

数据类型 变量名 = 方法名(参数)

注意:方法定义时return后面的返回值与方法定义上的数据要匹配

相当方法isEvenNunber执行完后返回了ture,然后将false赋给了falg,所以最后输出为true。

方法之间是平级,无法嵌套,void表达无返回值可以不写。return会使代码停止运行,下面代码不再运行。

方法通用格式

public static 返回值类型 方法名(参数){

方法体;

return 数据;

}

方法的重载

重载对应方法的定义,与方法的调用无关,仅对同一个类中方法名称与参数进行识别,与返回值无关。

  • 多个方法在同一个类中
  • 多个方法具有相同方法名
  • 多个方法的参数不相同,类型不同或者数量不同

方法参数传递(基本类型)

对于基本数据类型的参数,形式参数的改变,不用影响实际参数的值。

先将main加载栈内存中,在change方法中将number数据改变为200,在栈内存中运行完后就消失了,并不影响main方法中number的值。

方法参数传递(引用类型)

对于引用类型参数,形式参数的改变,影响实际参数的值。

change方法中的arr[ ] = 200  改变了栈内存中的arr[1] 的值。

Debug调试工具

可以通过构造方法

1、方法名称必须与类名称保持一致;

2、使用new关键字,本质是在调用构造器。构造方法是在使用关键字new实例化对象的时候自动调用的。

3、必须没有返回值,无void。构造方法不允许设置任何返回值类型,即:没有返回值定义;

快捷键  Alt  +   Insert

4、renurn返回值类型必须与定义的相同

定义构造方法:

public person()

一个构造器:

一个类至少有一个构造方法,

构造方法上不允许设置返回值类型,

程序编译器是根据代码结构来进行编译处理的,执行的时候也是根据代码结构来处理的。

如果在构造方法上使用了void,那么此结构就与普通方法的结构完全相同,这样编译器会认为此方法是一个普通方法,普通方法与构造方法最大的区别:构造方法是在类对象实例化的时候调用的,而普通方法是在类对象实例化产生之后调用的。

既然构造方法本身是一个方法,那么方法就具有重载的特点,而构造方法重载的时候只需要考虑参数的类型以及个数即可。

内容修改的处理

实例化对象:对象名称 = new 类名称()

 

 

 

public static void main(String[] args) {

new Person(“张三”,10).tell;//进行方法的调用

}           }输出:张三  10

此时依然通过了对象进行了类中tell()方法的调用,但是由于此对象没有任何的引用名称,所以该对象使用一次之后将成为垃圾,所有的垃圾将被GC进行回收与释放。只要是方法都可以传递任意数据类型。

this关键字:

this :代表对象不同:本身调用这个对象,

super: 代表父类对象的应用

public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        String name = sc.next();

        int age = sc.nextInt();

        String sex = sc.next();

        Person p = new Person(name,age,sex);

        p.display();

    }

}

class Person{

    String name = "张三";

    int age = 18

    String sex = "";

    /********** Begin **********/

    public Person(String name,int age,String sex){

        this.age = age;

        this.name = name;

        this.sex = sex;

    }

    public void display(){

        System.out.println("name" + name);

        System.out.println("age" + age);

        System.out.println("sex" + sex);

    }

}

静态方法:static

static关键字的作用

static关键字你可以理解为是一个形容词,一般是用来形容类、方法、变量,代码块,还有一个作用是用来静态导包,本关我们只讨论它的三个用法。

来自 <头歌实践教学平台>

使用static关键字访问对象的属性:

注意:如果一个类的成员变量被static修饰了,那么所有该类的对象都共享这个变量。无论这个类实例化多少对象,它的静态变量只有一份拷贝。 如:

输出:

李四 李四 李四

来自 <头歌实践教学平台>

2.修饰方法

用static关键字修饰的方法叫做静态方法。静态方法我们已经用过,它有一个特点相信你已经很熟悉,那就是不需要创建对象就可以直接使用。 如:

注意:

  1. 静态方法不能使用类的非静态变量;

  1. 静态方法可以直接调用静态方法,但是调用普通方法只能通过对象的实例才能调用。

 

输出结果:

我被调用了

静态代码块是不需要依赖main方法就可以独立运行的。

关于静态代码块你只需要记住一句话:在类被加载的时候运行且只运行一次

非静态方法能调用能调用静态方法,静态方法不能调用非静态方法。

 

通过类直接调用:int add = Dem03 add(a:1,b:2)

System.out.println(add);

非静态方法:实例化这个类  new ,然后再进行调用。

引用传递:Penson  人   Pet  动物

一个项目只应该存在一个main方法。

类是抽象的,类实例化后会返回一个给自己的对象。

子类与父类

Private 私有   与public一样都属于修饰符。

属性私有化  get/ set

public class  Teacher    extends  AAB;    (黄色属于一体)

私有化的子类无法继承,子类放再父类中。

一般分为两个包 

System.out.println(stringname);

直接输入测试类中传递的参数

System.out.println(this.name);

当前类中的参数

System.out.println(super.name);

输出父类的参数

调用父类的构造器,必须要在子类构造器第一行写上:

public student (){

super()

}

super  只能出现在子类的方法或者构造方法中。

super和this不能同时调用构造方法。

小结:

对象的创建和使用,先创建对象,然后在是在对象里面设置属性和方法。

-必须使用new 关键字创建对象,构造器  Person   syj =  new Person()

对象的属性    syj.name 

对象的方法    syj.sleep()

方法的重写:

A类继承了B类。

方法的调用只和左边,定义的数据类型有关。

继承: 

ubli static void main(String args[]) {

        /*/ 实例化一个Cat对象,设置属性nameage,调用voice()eat()方法,

        再打印出名字和年龄信息*/

        /********* begin *********/

        Cat p = new Cat("大花猫",6);

        p.voice();

        p.eat();

        p.show();

        /********* end *********/

        /*/ 实例化一个Dog对象,设置属性nameage,调用voice()eat()方法,

        再打印出名字和年龄信息*/

        /********* begin *********/

        Dog p1 = new Dog("大黑狗",8);

        p1.voice();

        p1.eat();

        p1.show();

        /********* end *********/

    }

}

class Animal {

    /********* begin *********/

    String name;

    int age;

    /********* end *********/

}

class Cat extends Animal {

    // 定义Cat类的voice()eat()方法

    /********* begin *********/

    public Cat(String name,int age){

        this.name = name;

        this.age = age;

    }

        void voice(){                                    //三个方法

            System.out.println(name + "喵喵叫");

        }

        void eat(){

            System.out.println(name + "吃鱼");

        }

        void show(){

        System.out.println(name + age + "");

        }

    /********* end *********/

}

class Dog extends Animal {

    // 定义Dog类的voice()eat()方法

    /********* begin *********/

    public Dog(String name,int age){

        this.name = name;

        this.age = age;

        }

        void voice(){

            System.out.println(name + "汪汪叫");

        }

        void eat(){

            System.out.println(name + "吃骨头");

        }

        void show(){

        System.out.println(name + age + "");

        }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值