面向对象初识和方法进阶

什么是面向对象

以类的方式组织代码,以对象的形式封装数据

面向对象的三大特性

封装

继承

多态

回顾方法及加深

方法的调用

package oop.revise;
//Demo1类
public class Demo1 {
    //main方法
    public static void main(String[] args) {
        System.out.println(new Demo1().sayHello());
        new Demo1().say1();
    }


    /*
    修饰符 返回值类型 方法名(...){
            //方法体
            return 返回值;
        }
     */

    public String sayHello(){
        return "hello,world";
    }

    public void say1(){//非静态方法
        System.out.println("The world is big, welcome home.");
    }

    public static void say2(){//静态方法
        System.out.println("世界很大,欢迎回家");
    }
}
package oop.revise;

public class Demo2 {
    public static void main(String[] args) {
        Demo1 s = new Demo1();//不同类中非静态方法调用
        s.say1();

        Demo1.say2();//不同的类中静态方法调用

        say3();//同一个类中静态方法的调用

        Demo2 d = new Demo2();//同一个类中非静态方法的调用
        d.say4();
        //总结:非静态方法均要new后才能使用。不同类中静态方法要用 类.方法名() ,同一个类中直接使用 方法名()
    }
    public static void say3(){
        System.out.println("有人说,味道和记忆捆得最紧,它让时光变得生动。");
    }
    public void say4(){
        System.out.println("那是系统里永远看不到的景色,是万家灯火,是喧嚣人间。");
    }
}

值传递和引用传递

package oop.revise;

public class Demo3 {
    //值传递  java都是值传递
    public static void main(String[] args) {
        int a = 1;
        System.out.print("第一次a:");
        System.out.println(a);
        change(a);
        System.out.print("应用change方法后的a:");
        System.out.println(a);
    }

    public static void change(int a){
        a = 10;
    }
}

package oop.revise;
//引用传递:传对象,本质还是值传递
public class Demo5 {
    public static void main(String[] args) {
        P p = new P();//实例化了个P类
        System.out.println(p.name);
        change(p);
        System.out.println(p.name);

    }
    public static void change(P p){
        p.name = "doll";
    }
}

//定义了个P类,有一个属性:name
class P{
    String name;
}

posted @ 2022-10-01 21:15  北极有熊ovo  阅读(26)  评论(0)    收藏  举报