• 面向对象(1)


    面向对象含义

    Java的核心思想就是OOP(面向对象编程)

    OO:面向对象

    面向过程:线性思维

    面向对象:分类思维

    面向过程和面向对象不可分割,面向对象相当于一个框架,面向过程相当于具体执行流程

    抽象:把共性抽取出来 抽"像"

    方法的定义及调用

    静态方法:加static 的方法

    静态方法可直接通过类名进行调用

    非静态方法需要把类进行实例化

    new Student()代表把类实例化了,.say()相当于调用了其中的方法

    一般形象的写为如下方式:

    Student student = new Student(); 快捷键:new Student()+alt+enter

    public class Demo1 {
        //main方法    用于启动当前程序
        public static void main(String[] args) {
    
        }
        
        //static是和类一起加载的,即类存在的时候它就存在了
        public static void a(){
            b();    //一个已经存在的调用不存在的会报错,所以这里调用b()的时候会报错
        }
    
        //b()是类实例化之后才存在的
        public void b(){
    
        }
    
    }
    

    方法中,实际参数和形式参数的类型要对应

    值传递和引用传递:

    Java中都是值传递

    //值传递   只是把值传给了形参
    public class Demo2 {
        public static void main(String[] args) {
            int a = 1;
            System.out.println(a);   //1
    
            Demo2.change(a);
            System.out.println(a);   //1
            //因为方法中的形参并没有返回一个结果,它的返回值为空
        }
    
        //返回值为空
        public static void change(int a){
            a = 10;
        }
    }
    
    //引用传递   一般是传递一个对象   本质还是值传递
    //一个类里面只能有一个public class,但是可以有多个class
    public class Demo3 {
        public static void main(String[] args) {
            Person person = new Person();
            System.out.println(person.name);   //null
    
            Demo3.change(person);
            System.out.println(person.name);
    
    
        }
    
        public static void change(Person person){
            //Person是一个对象,指向Person person = new Person();  这是一个具体的人,可以改变属性
            //本质还是在传递值,把xg传递给了对象的属性
            person.name = "xg";
        }
    
    }
    
    class Person{
        String name;
    }
    

    类与对象

    构造器

    在IDEA下查看编译后的class文件

    可以观察到在class文件中默认添加了一个方法,且这个方法没有返回值

    进行debug调试发现,构造器走完了才生成对象,输出person.name

    alt + insert ---> Constructor生成构造器

    选择Select None 生成无参构造函数

    按住ctrl可进行多选

    构造器:

    1. 和类名相同
    2. 没有返回值

    作用:

    1. new 本质是在调用构造方法
    2. 初始化对象的值

    注意点:定义的有参构造,若想使用无参构造,需显示定义

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

    创建对象内存分析

    总结

    1. 类与对象

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

    2. 方法

      定义、调用

    3. 对象的引用

      引用类型:除开基本类型(8)之外的

      对象是通过引用来操作的,就是内存栈中的,真实对象是在堆里面的(引用就是指向对象的一个地址)

    4. 属性:字段Field 成员变量

    ​ 默认初始化:

    ​ 数字:0 0.0

    ​ char:u000

    ​ boolean: false

    ​ 引用:null

    除开基本类型之外的统统为null

    ​ 修饰符 属性类型 属性名 = 属性值;

    1. 对象的创建和使用

      --必须使用new 关键字创建对象,创建对象还需要有构造器

    ​ --对象的属性 xg.name

    ​ --对象的方法 xg.sleep()

    1. 类(类中只有这2个):

      静态的属性 属性

      动态的行为 方法

  • 相关阅读:
    word文档的图片怎么保存到Web编辑器上
    如何在linux下查看gpu信息

    lua注释
    readDouble
    ..在lua中运用
    C++条件分支结构
    C++条件分支结构
    Flink基础(十六):Table API 和 Flink SQL(一)整体介绍
    Flink基础(十四):DS简介(14) 搭建Flink运行流式应用
  • 原文地址:https://www.cnblogs.com/xgbbd/p/13500712.html
Copyright © 2020-2023  润新知