Java基础笔记(六)【面向对象——类、对象】

本文介绍了面向对象编程的基本概念,包括类、对象、封装、继承和多态。同时,讨论了值传递和引用传递的区别,并通过示例展示了它们在Java中的应用。此外,还讲解了类和对象之间的关系以及构造器的作用,强调了构造器在对象初始化中的重要性。
摘要由CSDN通过智能技术生成

面向对象&面向过程

oop(object-oriented programing):面向对象编程。

  1. 面向过程&面向对象

    类:属性+方法
    在这里插入图片描述

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

面向对象的三大特性

  1. 面向对象的三大特性

    • 封装

    • 继承

    • 多态:同一个事物表现出多种形态。如小明、小红都属于人这个类,在执行学习这个方法时,有的人成绩好,有的人成绩差。

  2. 实际参数和形式参数的类型要一一对应

值传递&引用传递

  1. 值传递&引用传递

    • 值传递:

      public class Demo03 {
          public static void main(String[] args) {
              int a = 1;
              System.out.println("a的值为:"+ a);
              change(a);
              System.out.println("a的值为:"+ a);
          }
          public static void change(int a){
              a = 10;
          }
      }
      
      a的值为:1
      a的值为:1
      
    • 引用传递:

      public class Demo04 {
          public static void main(String[] args) {
              Person person = new Person();
              System.out.println("person.name:" + person.name);
              change(person);
              System.out.println("person.name:" + person.name);
          }
          public static void change(Person person){
              //这里person是一个对象。指向的是---->Person person = new Person();具体的人,可以改变属性。
              person.name = "whl";
          }
      }
      class Person{
          String name;
      }
      
      person.name:null
      person.name:whl
      

类和对象的关系

  1. 类和对象的关系
    在这里插入图片描述

    规范项目:一个项目应该只存在一个main方法,一般的类里面,只写属性、方法
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hbf30Gw7-1686126128708)(Java笔记.assets/image-20230607151334172.png)]

    • 关键字this:代表当前类
    • 类是抽象的,需要实例化
  2. 创建与初始化对象
    在这里插入图片描述

    • Application启动类:
    public class Application {
        public static void main(String[] args) {
            //类是抽象的,需要实例化类
            //类实例化后,会返回一个自己的对象
            //student对象就是一个Student类的具体实例!
            //同一个类下面可以产生不同的对象
            Student student = new Student();
            //默认值打印
            System.out.println(student.name);//null
            System.out.println(student.age);//0
    
            student.study();
        }
    }
    
    • Student类:
    public class Student {
        //属性
        String name;//抽象概念中的名字不应该被写死
        int age;
    
        //方法
        public void study(){
            System.out.println(this.name + "在学习");
        }
    }
    
    //输出
    null
    0
    null在学习
    

构造器

  1. 构造器
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HyDcKX8F-1686126128709)(Java笔记.assets/image-20230607154218249.png)]
    在这里插入图片描述

    out文件夹输出的.class文件中,默认添加了一个方法,且该方法没有返回值;方法的名字与类名相同。(即无参构造)

    得出结论:一个类即使什么都不屑也会得到一个方法。

    • 快捷键:alt+insert
    • 构造器特点:
      • 和类名相同
      • 没有返回值
    • 构造器作用:
      • new一个对象的时候,本质是在调用构造器
      • 初始化对象的值
    • 注意点:
      • 一旦定义了有参构造,无参构造就必须显示定义,否则就回报错。

小结

  1. 小结类与对象

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

    • 方法:定义、调用

    • 对象的引用:

      • 引用类型:基本类型(8),对象是通过引用来操作的。栈–>堆
    • 属性:字段Field 成员变量

      • 默认初始化:
        • 数字:0、0.0
        • char:u000
        • boolean:false
        • 引用类型:统统为null
      • 书写模板:修饰符 属性类型 属性名 = 属性值!
    • 对象的创建和使用

      • 必须使用new关键字创造对象,
      • 对象的属性:person.nama
      • 对象的方法:person.sleep()
    • 类:

      属性,方法

    • 三大特性:

      封装、继承、多态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值