zoukankan      html  css  js  c++  java
  • 随堂笔记6

    随堂笔记6

    面向对象编程

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

    2. 抽象

    3. 三大特性:封装,继承,多态

    方法的调用以及对象创建调用

    1. 可以调用不同package(包)中不同类(class)的函数,加有static关键字可直接调用,其它的只能通过new一个对象将函数实例化,通过调用实例化对象调用函数

    2. 无static函数

      //Student类
      package com.yyl.oop;

      public class Student {
         public void say(){
             System.out.println("学生说话了");
        }
      }
      //主函数demo01
      package com.yyl.oop;

      public class demo01 {
         public static void main(String[] args) {
             //对象类型 对象名字 =对象值;此处对象值为一个实例化对象
             Student student=new Student();
             //student代替Student类
             student.say();
        }
      }
    3. 带有static函数的

      //Student类
      package com.yyl.oop;

      public class Student {
         public static void say(){
             System.out.println("学生说话了");
        }
      }
      //主函数demo01
      package com.yyl.oop;

      public class demo01 {
         public static void main(String[] args) {
           Student.say();
        }
      }
    4. static区分

      1. 带有static:和类一起加载的,类存在函数就存在

      2. 不带static:类实例化之后才存在

    5. 实例化即new一个新对象代替原函数

    引用传递

    1. 引用传递传递一个对象(相当于c语言传递一个指针)

      1、值传递

      在方法的调用过程中,实参把它的实际值传递给形参,此传递过程就是将实参的值复制一份传递到函数中,这样如果在函数中对该值(形参的值)进行了操作将不会影响实参的值。因为是直接复制,所以这种方式在传递大量数据时,运行效率会特别低下。//参考计算机系统基础的栈理论

      2、引用传递

      引用传递弥补了值传递的不足,如果传递的数据量很大,直接复过去的话,会占用大量的内存空间,而引用传递就是将对象的地址值传递过去,函数接收的是原始值的首地址值。在方法的执行过程中,形参和实参的内容相同,指向同一块内存地址,也就是说操作的其实都是源数据,所以方法的执行将会影响到实际对象

    public class demo02 {
       public static void main(String[] args) {
           Person student=new Person();
           System.out.println(student.name);//输出“null”
           change(student);
           System.out.println(student.name);//输出“阿deair”
      }
       public static void change(Person student){//引用传递,传递一个类
           student.name="阿deair";//传递类可以改变类的值
           //解释:相当于传递对象的地址(指针)
      }
    }
    class Person{//定义一个类,注意在类的外面
       String name;//默认初始化为null
    }

    类与对象的创建

    1. 创建类

      package com.yyl.oop2;

      public class student {
         String name;
         int age;
         String num;
         int grade;
         public void study(){
             System.out.println(this.name+"在学习");//引用自己类的变量this.变量名
        }
      }
    2. 声明对象和调用

      package com.yyl.oop2;

      public class demo01 {
         public static void main(String[] args) {
             //类:抽象的,实例化
             //类实例化后会返回一个自己的对象
             //xiaoming对象就是student类的具体实例
             student xiaoming=new student();
             xiaoming.name="小明";
             xiaoming.age=10;
             System.out.println(xiaoming.name);
             System.out.println(xiaoming.age);
        }
      }
    3. 总结:相当于c语言中的结构体+java的包与类的作用

      注意声明类的时候保持类的名字和创建时的名字保持一致,否则调用时会有问题

    构造器

    1. 构造器是类中的一种函数,函数名和类名相同,函数没有返回类型和返回值,

    2. 构造器作用:new的本质就是调用构造器,有参构造可以用于初始化

    package com.yyl.oop2;

    public class demo02 {
       public static void main(String[] args) {
           student02 xiaoming=new student02("xiaoming");//默认无参构造器,不需要传递初始值
           System.out.println(xiaoming.name);
      }
    }
    package com.yyl.oop2;

    public class student02 {
       //一个类即使什么也不写,他也会存在一个类
       String name;
       //默认无参构造器,不需要传递参数,系统自动生成
       public student02(){}

       //自定义构造器,需传递对应类型参数,一般用于初始化
       //一旦定义有参构造器,无参就必须显示定义(删除有参构造?)
       public student02(String x){
           this.name=x;
      }
    }

    堆存放new的数组和对象,栈存放基本变量类型和引用变量

  • 相关阅读:
    export、export default 和 exports、module.exports 的区别
    RunJS JavaScript及时运行调试工具
    vuecli 中的devServer配置代理
    vue使用pinyin的npm包将文字转为大写首字母
    vue阻止事件冒泡和默认事件
    解决Elementu的 elform 使用 vif校验失灵问题
    calc()使用方法
    element ui 中的 resetFields() 报错'resetFields' of undefined
    vux中的 scroller 组件,在iOS13上,一停止滑动就跳到顶部问题
    elementui的input加单位符号
  • 原文地址:https://www.cnblogs.com/yylblog/p/13648545.html
Copyright © 2011-2022 走看看