面向对象 java静态方法与非静态方法的调用 值传递 引用传递

面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系

统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽

象的方法,是计算机编程技术发展到一定阶段后的产物。

面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近

事物的自然运行模式。

JAVA类方法的调用

一、静态方法调用其他方法:
    1. 静态方法调用非静态方法
    2.静态方法调用静态方法
二、非静态方法调用其他方法
    1.非静态方法在同一类内调用其他方法
    2.非静态方法在不同类之间调用其他方法

注:调用方法——调用另一方法的方法
被调用方法——被调用的方法

public class Student {
    //学生类里定义两个方法,一个是静态方法,一个是动态方法
    //这个是静态方法 使用static关键字修饰
    public static void fun1(){
        System.out.println("静态方法被调用了");
    }

    //动态方法
    public void fun2(){
        System.out.println("非静态方法被调用了");
    }
}
public class Test {
    public static void main(String[] args) {
        //在这个测试类里调用Student的方法
        //调用静态方法
        //静态方法的调用可以直接类名.方法
        Student.fun1();

        //动态方法的调用需要实例化对象
        Student student = new Student();
        student.fun2();
    }

    public void a(){

    }
    public void b(){
        a();//在该方法中是直接可以调用a方法的,他们属于同一个类
    }
    public  void c(){

    }
    public static void d(){
       // c();这种调用是错误的,此处静态方法不能直接调用动态方法
    }
}
public class Demo01 {

    public static void main(String[] args) {
        //直接调用
        int add = Demo01.add(1, 3);
        System.out.println(add);

        //实例化对象
        Demo01 demo01 = new Demo01();
        demo01.add2(1,3);

    }
    //形参和实参
    //静态的方法
    public static int add(int a,int b){
        return a+b;
    }
    //非静态的方法
    public int add2(int a,int b){
        return a+b;
    }
}
public class Demo02 {
    //值传递
    public static void main(String[] args) {
        int a = 1;
        System.out.println(a);

        Demo02.fun(a);
        System.out.println(a);//输出值依然是1

    }
    public static void fun(int a){
        a=10;
    }
}
//引用传递 传递的其实是一个对象,本质还是值传递
public class Demo03 {
    public static void main(String[] args) {

        Person person = new Person();
        System.out.println(person.name);//输出为null

        Demo03.change(person);
        System.out.println(person.name);//输出为lqx


    }

    //定义一个方法
    public static void change(Person person){
        person.name = "lqx";
    }

}
class Person{//创建一个Person类,里面有一个属性
    String name;

}
//引用传递 传递的其实是一个对象,本质还是值传递
public class Demo03 {
    public static void main(String[] args) {

        Person person = new Person();
        System.out.println(person.name);//输出为null

        Demo03.change(person);
        System.out.println(person.name);//输出为lqx


    }

    //定义一个方法
    public static void change(Person person){
        person.name = "lqx";
    }

}
class Person{//创建一个Person类,里面有一个属性
    String name;

}
posted @ 2021-07-12 16:16  海风不咸  阅读(461)  评论(0)    收藏  举报