• 面向对象 类与对象


    面向对象

    面向对象的本质就是 以类的形式组织代码,以对象的形式封装数据。

    1.类与对象的关系

    对象:世间万物皆对象,对象是一个具体的事物。对象分为动态对象和静态对象。静态对象是客观存在,不能被改变的,比如性别。动态对象代表对象正在执行的动作,比如行走。

    类:类是封装具有同一特征的对象的载体。比如 雁群,就可以看做是一个大雁类,其中的每一只大雁都是这个类的一个对象。他们都具有相同的特征,都有羽毛,都会飞,都是从北飞到南。

    对象 是一个具体的事物。类,是将一系列相同特性的对象统一的划分。

    一个类的对象,都有这个类的相同特性。


    2.面向对象程序的设计特点

    1. 封装性 就是用类这个载体,将对象的属性封和行为封装起来,就像点灯开关,用户只需要按下按钮,就可以打开灯,而其内部的流程和操作则被封装起来的。这样用户可以在不知道内部构造的情况下使用,但不能对内部进行更改。

    2. 继承性 一个类中的所有对象,都继承了这个类的全部属性和行为,并在此基础上增加了特有的属性和行为。把类看做一棵苹果树,对象则是上面的树枝,每一根树枝都继承了苹果树的属性,都是苹果树枝,但没根分支形状各异,结的苹果有多有少。这就是衍生出了自己的属性和行为。我们把苹果树称为父类,树枝称为子类

    3. 多态性 根据层级分化,每一层都会有一个自己独立的属性,他的下一层在衍生这个属性的同时增加新的属性。比如 创建一个苹果类,苹果类中有大小和成色两个属性,就相当于这个类中所有的苹果大小和成色都相同。然后再创建两个类,一个好的类,一个坏的类。这样在成色和大小都一样的苹果又被区分成了好的和坏的两种。这样,好的可以卖10块,坏的只能卖2块。

    使用new关键字创建对象

    使用new关键字来创建的时候,会自动分配内存空间。还会给闯将好的对象 进行默认的初始化 以及 堆类中构造器的调用。

     

    3.类与对象的使用

    1. 通常在一个项目中,只存在一个main方法,为主方法。所以在操作时,需要创建一个含main方法的类,用来收集其他类的信息。

    2. 创建一个Student类。声明一个String类型name。声明一个int类型age。这样一来,这个类中就具备了名字和年龄两种特性。

    3. 在主方法中调用这个Student类,new Student就实例化了。可以实例化无数个对象,且他们都具有这个Student的特性(名字和年龄)。然后给每个对象的String类型和int类型赋值。

    创建一个声明变量的类

       package oop.demo02;
      //一个类中,只存在 属性 和 方法
      public class Student {
     
          //属性(字段)
          String name;
          int age;
     

    创建一个主方法的类

    package oop.demo02;

    //一个项目只能存在一个main方法 为 主方法
    public class Application {
       public static void main(String[] args) {
           //类是抽象的,他需要实例化
           //new Student后,就变成实例化的对象了。
      //Student类   对象 = 新建 类
           Student student = new Student();
           Student student1 = new Student();
           Student student2 = new Student();

           //给对象赋具体的值
           //这个过程叫封装
           student.name = "小明";
           student.age = 9;
           student1.name = "小红";
           student1.age = 10;
           student2.name = "小康";
           student2.age = 8;

           System.out.println(student.age);
           System.out.println(student1.name);
           System.out.println(student2.name);
           /*同一个类,可以产生不同的值,这些值就是对象。他们都有Student类中的特性,但
      根据对每个对象赋的值不同,对象的值就不同。 在Student类中,都有名字,年龄的特征。
      再根据每个对象被赋的值来细分。
            */
      }
    }
  • 相关阅读:
    Floyd_Warshall算法
    Bellman_Ford算法
    深度优先搜索
    广度优先搜索
    贪心算法_活动选择
    动态规划_0-1背包问题
    算法导论_动态规划_最长回文子序列
    算法导论_动态规划_最长公共子序列
    动态规划解决分割问题
    2016 Google中国开发者大会游记
  • 原文地址:https://www.cnblogs.com/jinweichaoyouqu/p/13899370.html
Copyright © 2020-2023  润新知