首页 > 其他分享 > 面向对象

面向对象

时间:2023-01-02 15:33:51浏览次数:42  
标签:name System 面向对象 student println public out

面向对象

oop

面向对象的本质就是,以类的方式组织代码,以对象的组织(封装)数据。

抽象

三大特征:封装,继承,多态

值传递与引用传递

package oop;
//值传递
public class Demo1 {
    public static void main(String[] args) {
        int add = add(1, 2);
        System.out.println(add);
        int a = 1;
        System.out.println(a);
        change(a);
        System.out.println(a);//值传递,传过去的参数是形参,
        // 作用域为该方法,而main中的a作用域为main方法中,所以局部改变不影响,地址上来说就是main方法中有int a
        //而调用change()方法传入的a只是将值传递过去,并没有传入地址,而再change()方法里有int a进行接收,故
        //再change()方法里的参数再如何改变不影响main中的参数

    }
    public static int add(int a,int b){
        b = a+b;
        return a+b;
    }
    public static void change(int a){
        a = 10;
        int b = 10;
        System.out.println(b + "========");
        add(a,b);
        System.out.println(b + "bubian");
        System.out.println(a + "hhhhhh");
    }
}

package oop;

public class Student {
    String name;
    int age;

    public void say(){
        System.out.println(name + "说话了! 年龄:\t" + age);
    }
}

package oop;
//引用传递
public class Demo2 {
    public static void main(String[] args) {
        Demo2 demo2 = new Demo2();
        Student student = new Student();
        demo2.change(student.name,student.age);//值传递,student中的name和age并没有改变
        System.out.println(student.name + student.age);
        demo2.change1(student);//引用传递,传入的是student对象,对其属性更改,原实例对象也会更改
        System.out.println(student.name + student.age);//就像c中的地址传参类似,改变的是student地址中的值,传过去的是地址
    }
    public void change(String name,int age){
        System.out.println(name + "====" + age);
        name = "zhang";
        age = 10;
    }
    public void change1(Student student){
        System.out.println(student.name + "====" + student.age);
        student.age = 10;
        student.name = "sang";

    }
}
//另,若传入数组也会改变,因为数组传过去的也是地址,更改的是地址内的值

创建与初始化对象

构造器

和类名相同

没有返回值

new本质是再调用构造方法

初始化对象的值

定义有参构造之后显示定义一个无参构造

Alt + Insert idea快捷键

this.【类属性】 = 传过来的参数

package oop;

public class Demo3 {
    public static void main(String[] args) {
        Pet cat = new Pet();
        cat.name = "猫";
        cat.shout();
        Pet dog = new Pet();
        dog.name = "狗";
        dog.shout();
    }
}

类是一个模板,对象是一个具体的实例

属性:默认初始化,数字:0 0 0.0 char u0000 boolean false 引用 null

标签:name,System,面向对象,student,println,public,out
From: https://www.cnblogs.com/1234sdg/p/17019956.html

相关文章

  • ABAP开发面向对象---类
    今日学习ABAP面向对象里面的类,关于构造,继承,实现。踩坑点:类有抽象的方法,类本身也需要是抽象的,故需要在类申明里面加上ABSTRACT关键字学习资料为B站翱翔云天老师的1CLA......
  • php面向对象(OOP)编程
    大多数类都有一种称为构造函数的特殊方法。当创建一个对象时,它将自动调用构造函数,也就是使用new这个关键字来实例化对象的时候自动调用构造方法。构造函数的声明与其它操......
  • Java06 面向对象
    一什么是面向对象面向对象编程(Object-OrientedProgramming,OOP)面向对象编程的本质就是:以类的方式组织代码,以对象组织(封装)数据。三大特性:封装继承多态从认识论角......
  • 面向对象
    什么是面向对象以类的方式组织代码,以对象的组织(封装)数据封装-继承-多态对象-具体——类-抽象设计:先有多个对象,再将对象共性抽象成类代码:先有抽象类,再new具体对......
  • Python面向对象原理分析-元类MetaClass
    metaclass元类1.前戏对象是类实例化的结果classFoo(object):pass#第1步:调用Foo的__new__方法创建空对象。#第2步:调用Foo的__init__方法对对象进行初始化。o......
  • JAVA零基础小白上手教程day08-JAVAOOP面向对象
    day08-JAVAOOP课程目标1.【理解】什么是接口2.【掌握】接口的定义格式3.【掌握】接口的使用4.【理解】接口的成员特点5.【理解】类和接口抽象类和接口之间的关......
  • Python学习六:面向对象编程(上)
    文章目录​​前言​​​​一、面向对象编程:​​​​1.oop[objectorientedprogramming]是一种python的编程思路​​​​2.解释​​​​3.面向对象和面向对象编程​​......
  • Python学习八:面向对象编程(下):异常、私有等
    文章目录​​前言​​​​一、私有化属性​​​​1.引入私有化属性​​​​2.语法(定义)​​​​3.私有属性的特性​​​​4.使用的场景​​​​5.最后小结​​​​二、......
  • Python学习七:面向对象编程(中)
    文章目录​​前言​​​​一、析构函数​​​​二、对象三大特征​​​​1.封装​​​​2.继承​​​​3.多继承的问题​​​​4.重写父类方法​​​​5.调用父类方法......
  • 第六章《类的高级特性》第6节:面向对象三大特征
    ​面向对象编程具有三大特征,分别是:封装、继承和多态。一、封装​封装就是隐藏一切可隐藏的东西,只向外界提供最简单的操作接口。举例来说:电视机的工作原理很复杂,为完成这些......