• java入门 (七) 面向对象(一)


    java入门(七)面向对象(一)

    1. 什么是面向对象
    2. 回顾方法的定义
    3. 回顾方法的调用
    4. 类与对象的创建
    5. 构造器详解
    6. 创建对象内存分析
    7. 简单小结类与对象

    什么是面向对象

    面向过程思想:

    步骤清晰简单,第一步做什么..第二步做什么..

    面对过程适合处理一些较为简单的问题

    面向对象思想:

    物以类聚,分类的思维模式,思考问题的首先会解决问题需要哪些分类,然后对这些分类进行单独思考,最后,才对某个分类下的细节进行面向过程的思索

    面向对象适合处理复杂的问题,适合处理需要多人协作的问题

    对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理

    面向对象编程(Object-Oriented Programming,OOP)

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

    抽象

    三大特征:

    封装

    继承

    多态

    从认识角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象

    从代码运行角度考虑是先有类后有对象。类是对象的模板

    回顾方法的定义

    点击此处挑战B站视频:回顾方法的定义

    //Demo01类
    public class Demo01 {
        //main 方法
        public static void main(String[] args) {
    
        }
    
        /*
        修饰符 返回值类型 方法名(...){
              //方法体
              return 返回值;
         }
         */
    
        //return 结束方法,返回一个结果!
        public String sayHello(){
            return "hello,world";
        }
    
        public int max(int a, int b){
            return a>b ? a : b;//三元运算符!
        }
    }
    

    回顾方法的调用

    点击跳转B站视频:回顾方法的调用

    public class Demo02 {
        public static void main(String[] args) {
            //实例化这个类 new
            //对象类型  对象名 = 对象值;
            Student student = new Student();
            student.say();
        }
    
        //static 和类一起加载
    //    public static void a(){
    //        b.();
    //    }
        //类实例化 之后才存在
        //public void b(){}
    }
    
    //学生类
    public class Student {
        //非静态方法
        public void say(){
            System.out.println("学生说话了!");
        }
    }
    
    public class Demo03 {
        public static void main(String[] args) {
            //实际参数和形式参数的类型要对应
            int add = Demo03.add(1,2);
            System.out.println(add);
        }
    
        public static int add(int a,int b){
            return a+b;
        }
    }
    
    //值传递
    public class Demo04 {
        public static void main(String[] args) {
            int a = 1;
            System.out.println(a);
    
            Demo04.change(a);
            System.out.println(a);//1
        }
    
        //返回值为空
        public static void change(int a){
            a = 10;
        }
    }
    
    //引用传递:对象  本质还是值传递
    //对象,内存后边说,这里晕可以理解
    public class Demo05 {
        public static void main(String[] args) {
            Persion persion = new Persion();
            System.out.println(persion.name);
    
            Demo05.change(persion);
            System.out.println(persion.name);
        }
    
        public static void change(Persion persion){
            //persion是一个对象,只想的--->Persion persion = new Persion();这是一个具体人,可以改变属性
            persion.name = ("黑猫警长");
        }
    
    }
    //定义一个Persion类,定义一个属性:name
    class Persion{
            String name;//默认值:null
            }
    

    类与对象的创建

    类与对象的关系

    类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物

    动物,植物,手机,电脑...

    Persion类,Pet类,Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为

    对象是抽象概念的具体实例

    张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例

    能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念

    创建与初始化对象

    使用new关键字创建对象

    使用new关键字创建的时候,处理分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造的调用

    类中的构造器也成为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:

    1. 必须和类名相同
    2. 必须没有返回类型,也不能写void

    构造器必须掌握

    //学生类
    public class Student {
        //属性
        String name;//null
        int age;//0
        //方法
        public void sttudy(){
            System.out.println(this.name+"学生在学习");
        }
    }
    
    
    //一个项目应该只存在一个main方法
    public class Application {
        public static void main(String[] args) {
            //类是抽象的,需要实例化
            //类实例化后会返回一个自己的对象!
            //student对象就是一个Student类的具体实例!
    
            Student xiaoming = new Student();
            Student xh = new Student();
    
            xiaoming.name = "小明";
            xiaoming.age = 3;
            System.out.println(xiaoming.name);
            System.out.println(xiaoming.age);
    
    
            System.out.println(xh.name);
            System.out.println(xh.age);
            xh.name = "小红";
            xh.age  = 3;
    
        }
    }
    

    总结:

    类是一个模板,通过new关键字创建不同的实例

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

    构造器详解

    类中的构造器也成为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:**

    1. 必须和类名相同
    2. 必须没有返回类型,也不能写void

    构造器必须掌握

    1. 使用new关键字,本质是在调用构造器

      //无参构造器
      public Persion(){
             
      }
      
    2. 有参构造:一旦定义了有参构造,无参构造器必须显示定义

    //有参构造
        public Persion(String name){
            this.name = name;
        }
    
    public class Persion {
        //一个类即使什么都不写,它也会存在一个方法
        //显示的定义构造器
    
        String name;
    
        //实例化初始值
        //1.使用new关键字,本质是在调用构造器
        public Persion(){
    
        }
    
        //有参构造:一旦定义了有参构造,无参构造就必须显示定义
        public Persion(String name){
            this.name = name;
        }
    }
    
    public class Application02 {
        public static void main(String[] args) {
            // new 实例化了一个对象
            Persion persion = new Persion("黑猫警长");
            System.out.println(persion.name);
        }
    }
    

    总结:

    构造器

    1. 必须和类名相同
    2. 必须没有返回类型,也不能写void

    作用:

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

    注意点:

    1. 定义了有参构造方法,如果想使用无参构造,必须显示的定义一个无参构造
    2. alt+Insert快捷键以后会大量使用

    创建对象内存分析

    理解为主

    点击进入创建对象内存分析视频

    简单小结类与对象

    1. 类与对象

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

    2. 方法

    定义,调用

    1. 对象的引用

    引用类型: 基本类型(8):

    对象是通过引用来操作的:栈-->堆

    1. 属性:字段filed 成员变量

      默认初始化

      修饰符 属性类型 属性名 = 属性值!

    2. 对象的创建和使用

    必须使用new关键字创造对象,默认有无参构造器。如果写了有参构造器,想用无参构造,就必须显示的写出无参构造器

    1. 静态的属性

      动态的行为

    复习笔记参考的学习资料来自B站UP主:狂神说

  • 相关阅读:
    Zookeeper ZAB 协议分析
    Docker技术快速精通指南
    Oracle闪回技术详解
    怎样打造一个分布式数据库
    使用js冒泡实现点击空白处关闭弹窗
    也谈谈我对Docker的简单理解
    Docker技术快速精通指南
    Oracle优化网上常见的5个错误观点
    使用Spring AOP实现MySQL读写分离
    RESTEASY ,从学会使用到了解原理。
  • 原文地址:https://www.cnblogs.com/XING-ZHI-JI-DA-XUE/p/14196858.html
Copyright © 2020-2023  润新知