2022年2月8日

麻了,昨天的代码有点瑕疵。
bubble adj.冒泡的 bubble sort 冒泡排序
sparse adj.稀疏的 sparse array 稀疏数组
我给混了

面向对象编程OOP

Object Oriented Programing

package Preparation;

//Demo_1 类
public class Demo_1 {
    //main 方法

    //方法的定义

    public static void main(String[] args) {
        //属性+方法->类
        //以类的方式组织代码,以对象的方式组织(封装)数据

        //break 和 return 的区别
        /*
        break  跳出switch,结束循环
        return 结束方法
         */
    }

    /*
    修饰符 返回值类型 方法名(){
        //方法体
        //return
    }
     */
    public static String sayHello(){
        return "Hello";
    }

    public static int max(int a, int b){
        return a > b ? a : b;
    }
    //数组下标越界 Arrayindexoutofbounds
}

关于静态方法和非静态方法的一个区别
1、静态方法是和类一起加载的
2、非静态方法在类实例化(new)后才存在

package Preparation;

public class Demo_2 {
    //方法的调用
    public static void main(String[] args) {

        /*
        在另一个类写的方法,想要在这个类调用,两种方式:
        1、如果是静态(static):类名.方法
        2、如果是非静态:类的实例化,通过new进行实例化
               对象类型 对象名 = 对象值
         */

        //静态方法 static
        //与类Demo_2一起加载的
        Student.say1();

        //非静态方法
        //类实例化后(new)才存在的
        new Student().say2();
        //或
        Student student = new Student();
        student.say2();
    }
}
class Student {
    //方法
    //静态方法
    public static void say1(){
        System.out.println("学生上课说话1");
    }
    //非静态方法
    public void say2(){
        System.out.println("学生上课说话2");
    }
}

形参和实参

package Preparation;

public class Demo_3 {
    //形参和实参
    public static void main(String[] args) {
        int a = 1, b = 2;
        //对象类型 对象名 = 对象值
        //类是对象的模板
        Demo_3 demo_3 = new Demo_3();//创建对象
        System.out.println(demo_3.add1(a,b));
        System.out.println(Demo_3.add2(a,b));
        System.out.println(add2(a,b));
    }
    //非静态方法
    public int add1(int a, int b){
        return a + b;
    }
    //静态方法
    public static int add2(int a, int b){
        return a + b;
    }
}

值传递和引用传递

值传递:传递的是对象的值,而不是对象,因此不能修改对象的值
引用传递:传递的是对象的地址,因此能修改对象的值

值传递

package Preparation;

public class Demo_4 {
    public static void main(String[] args) {
        //值传递
        //Java都是值传递
        int a = 1;
        System.out.println(a);//1
        Demo_4.change(a);
        System.out.println(a);//1
    }

    //返回值为空
    public static void change(int a){
        a = 10;
    }
}

在这里插入图片描述

引用传递

package Preparation;

public class Demo_5 {
    public static void main(String[] args) {
        //引用传递:传递的是对象,但本质还是值传递
        Person person = new Person();
        System.out.println(person.name);//null
        System.out.println(person.age);//0

        Demo_5.change(person);
        System.out.println(person.name);//小石榴
        System.out.println(person.age);//19
    }

    public static void change(Person person){
        person.name = "小石榴";
        person.age = 19;
    }
}
//class Student 错误:已经有Student了
//定义了一个Person类,有一个属性:name
class Person{
    String name; //默认值为null
    int age;     //默认值为0
}

某弹幕评论:
值传递—>修改的是拿到的副本,原值并没有发生变化
引用传递—> 指针修改,因为引用指向原对象在在内存中的区域,所有可以修改原对象的值

类与对象的创建

类与对象的关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值