首页 > 其他分享 >面向对象初试和方法进阶

面向对象初试和方法进阶

时间:2022-10-01 21:23:00浏览次数:40  
标签:初试 进阶 void System 面向对象 static println public out

什么是面向对象

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

面向对象的三大特性

封装

继承

多态

回顾方法及加深

方法的调用

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;
}

标签:初试,进阶,void,System,面向对象,static,println,public,out
From: https://www.cnblogs.com/qt0312/p/16747800.html

相关文章

  • Lua 实现面向对象
    functionclass(classname,super)assert(classnameandclassname~="","classnamecannotempyt")localvifGameDefince.UNITY_EDITORthen......
  • 能不能手写Vue响应式?前端面试进阶
    Vue视图更新原理Vue的视图更新原理主要涉及的是响应式相关APIObject.defineProperty的使用,它的作用是为对象的某个属性对外提供get、set方法,从而实现外部对该属性的......
  • 能不能手写Vue响应式?前端面试进阶
    Vue视图更新原理Vue的视图更新原理主要涉及的是响应式相关APIObject.defineProperty的使用,它的作用是为对象的某个属性对外提供get、set方法,从而实现外部对该属性的......
  • 面向对象
    面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么....面对过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决......
  • 面向对象
    创建对象内存分析简单小结类与对象......
  • 实验一面向对象
      #include<iostream>usingnamespacestd;classpoint{public:point(intx0=0,inty0=0);point(constpoint&p);~point()=default;intget_x()con......
  • 面向对象编程
    面向过程&面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么......面对过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题......
  • RabbitMQ 入门系列:5、基础编码:交换机的进阶介绍及编码方式。
    系列目录​​RabbitMQ入门系列:1、MQ的应用场景的选择与RabbitMQ安装。​​​​RabbitMQ入门系列:2、基础含义:链接、通道、队列、交换机。​​​​RabbitMQ入门系列:3、基础......
  • 多目标优化 | NSGA-II进阶教程(全网首个三目标优化教程)
    我们在​​多目标优化|基于NSGA-II的多目标0-1背包问题求解(附matlab代码)​​讲解了使用NSGA-II求解两个目标(总价值和总体积)的01背包问题,后台有小伙伴咨询小编说能否出一期......
  • swoole基础进阶之进程篇1 进程、线程、协程
    视频https://www.bilibili.com/video/BV1oJ411U7bc/或https://edu.51cto.com/center/course/lesson/index?id=412750......