zoukankan      html  css  js  c++  java
  • 06 面向对象

     

    1.1 你是如何认识新事物的?

    一般而言,过往的见多的事物中,总结->推断->所属类别->认知行为。

    1.2 (Class)的概念

    类是对一组具有共同特征和行为的对象的抽象描述。

    理解

    [1]专门用于描述现实生活中的事物的。

    [2]类描述的事物都具有共同的特征和行为。

    [3]类就是我们通常所说 “类型” ,描述的是一个群体概念对群体性概念是一个抽象描述

    案例: 高富帅、白富美、屌丝沙雕

    为什么要提出类的概念?

    现实生活中,提出类的概念就是为了认知识别事物

    类可以快速生成对象,类是对象的抽象描述

    1.3 对象(Object)的概念

    对象是类的一个具体实现对象表示的是一个独立的,唯一的个体。

    对象的特征:

    [1] 独立的,唯一的 => 对象和对象之间是相互独立的,没有任何关系。即使同一类型的对象。

    [2] 对象承载的数据一定是不同的。

    [3] 对象描述的是个体对象具体的。特指某一个具体的事物。

    [4] 对象一定具有类所属的特性和行为。

    1.4 属性

    程序中,类或者对象的特征称为属性。属性用于的数据叫做属性值。例如:对象小明拥有姓名属性,小明就是姓名的属性值。

    1.5 方法

    程序,或者对象的行为称为方法。

    在程序类和对象的表述:

    类是一组具有相同属性和方法的对象的抽象描述。

    对象是一个具体的事物,具有一组属性和方法。

    1.6 如何定义一个类?

    创建->创建对象->解决具体业务问题

     

    语法

    [修饰符] class 类名{
       属性
       方法
    }


    定义一个Student 

    public class Student{
    // 学生的特性(属性)
    
    String id;
    String name;
    int age;
    char gender;
    
    public void sayHi(){
    System.out.println("我的姓名:"+name+",我的学号:"+id);
    }
    }


    总结

    [1]类的定义包含两部分成员,一个是属性、一个是方法。

    属性因为定义的位置,也称为成员变量,本质上属性就是的一个成员方法也成员类的成员方法。

    [2]属性的作用域是整个类型,所以方法中可以直接访问属性。

    [3]在定义成员变量时可以对其初始化。如果不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0   char:u0000,  boolean:false,  所有引用类型:null)  

    [4]属性定义格式:

    [修饰符]   属性类型   属性名 [=默认值]


      

    面向对象的语言中,整个程序的基本单位是类,通过类来组织程序。

    所有的类声明的变量都是引用数据类型引用数据类型必须通过new申请空间。

    1.7 创建对象的过程

    创建一个对象分为两个步骤:声明对象,然后申请内存空间。

    // 【1】声明s1的变量,s1是一个Student类型的对象
    // s1是Student的其中一个实例
    // Student s1 = null;
    
    // 【2】给s1申请内存空间(实例化的过程)
    //s1 = new Student();


    通过.来访问对象的成员(属性方法)通过实例结合.可以访问属性/成员变量,所有属性/成员变量也称为实例变量。 

    public class Test01{
    
    public static void main(String[] args){
    Student s1 = new Student();
    //s1.name = "二狗";
    //s1.id = "001";
    //s1.age = 20;
    s1.sayHi();
    //System.out.println(s1);
    
    Student s2 = new Student();
    
    //s2.name = "三狗";
    //s2.id = "001";
    //s2.age = 20;
    s2.sayHi();
    //System.out.println(s2);
    }
    }


    对象内存图 

    1.8 如何利用面向对象思维思考问题?

    需求:手机播放Mp3—最炫名族风

    public class Phone{
    String brand;
    String type;
    float price;
    String color;
    public void start(){
    System.out.println(brand+":"+type+" start...");
    }
    public void stop(){
    System.out.println(brand+":"+type+" stop...");
    }
    public void play(Music music){
    System.out.println(brand+":"+type+" play:"+music.name);
    System.out.println(music.singer);
    music.friendlyTime();
    System.out.println(music.content);
    }
    }
    public class Music{
    String name;
    String category;
    String content;
    String singer;
    int time; // 单位是秒
    public void friendlyTime(){
    
    int h,m,s;
    h = time / 3600;
    m = time % 3600 / 60;
    s = time % 60;
    System.out.println("时长:" + ((h>0) ? (h+":"):"") +m+":"+s);
    }
    }
    public class Test03{
    public static void main(String[] args){
    
    Phone phone = new Phone();
    phone.brand = "Apple";
    phone.type = "iPhone x";
    phone.price = 10000.0f;
    
    Music music = new Music();
    music.name = "最炫名族风";
    music.singer = "凤凰传奇";
    music.time = 151;
    music.content = "苍茫的天涯是我的爱
    苍茫的天涯是我的爱
    苍茫的天涯是我的爱";
    
    phone.play(music);
    }
    }
    关注博客 https://www.cnblogs.com/aknife/
  • 相关阅读:
    项目分析时找不到函数调用只有16进制数
    firebase消息推送配置
    布局错乱到原点的问题
    人脸识别部分文章地址笔记
    查看奔溃分析
    iOS App 后台任务的坑(奔溃原因分析)
    轨迹优化
    X SqlServer 事务日志传输 【将备份目录设置到辅助服务器】
    X sql server2014 发布与订阅的配置方法介绍包括【推送订阅】与【请求订阅】
    X SQL SERVER 使用订阅发布同步数据库 【推送订阅】
  • 原文地址:https://www.cnblogs.com/aknife/p/10788475.html
Copyright © 2011-2022 走看看