zoukankan      html  css  js  c++  java
  • 面向对象基础进阶01

    前言:面向对象编程是现如今编程的大环境,所以再次回顾面向对象的知识是非常有必要的。

    一:类与对象

    1:软件系统

    输入{用户界面}  运算{业务逻辑}

    存储{数据库}    输出{界面或其他文件}

    2:对象的了解

       对象是身边的一些常见的事物,主要了解对象之间区别; 

    对象区分的重要因素:

    静态特征(属性,表示对象“什么样子”) 

    动态特征(方法,表示对象“能干什么”)

    3:面向过程和面向对象

    面向过程:就是比较注重做每一件事情的过程,步奏,流程。关注点为小的细节

    面向对象:是具有一些特性和动作的东西,关注点为最后的结果。

    4:理解面向对象编程

       *它的核心是对象

       *对象为现实世界的实体,而面向对象编程就是将这些实体模拟到计算机程序中,实现相关的功能。

       *根据需要编写各种对象,并将其对象建立一定的关系;

    5:封装的概念

       *就是将一些小的对象放在一起,然后以一个新的对象呈现出来,封装使得一个对象的内部变得隐藏,从而更加安全;

       *将属性和方法放在一个类里面,类就可以看做是一个黑箱,只能在外面看到一些公共的方法和属性。<模块化和数据隐藏>

       *定义用操作方法把数据封闭到类中,形成以数据为核心,方法为外壳的类。

    6:类的概念

       *对象是类中的一个实例,将对象的共同特征抽取出来,这些共同的属性和方法被组织在一个单元中,就被就做类;

        *类是具有相同属性和共同方法(行为)的一组对象的集合

       *类的属性:对象或实体所拥有的静态特征,在类中表示称为类的属性;

       *类的方法:对象或实体所拥有的动态特征,在类中表示为类的方法;

    7:类与对象的区别 <自行车和设计自行车图纸的关系>

      *类是一个概念模型,在这个模型中,规定对象的属性和方法;

      *对象是一个实体;

    8:类模版的定义

      访问修饰符  class   类名

       定义字段;

       定义属性部分;

       定义方法部分;

    } 

    *定义类名:名词,首字母大写Passal命名法;

    *编写类的字段,属性;*编写类的方法,接口;【独立完成某个功能的单元模版】(学会理解类的组成,并且在这其中要学会应用)

    9:字段:叫做成员变量(全局变量);

    {字段和属性都是用来描述类的静态特征}方法中定义的变量叫做局部变量;二者的作用域不同;

    10:对象的创建过程

    Static void  Main(string []ardes)   
    
    {
    
      //定义字段
    
       Private int studentId;
    
       Private string studentName;
    
     //定义属性
    
    Public int StudentID
    
    {
    
      get{return studentId;}
    
      Set{studentId=value;}
    
    }
    
    Public string StudentName 
    
    {
    
    get{return studentName;}
    
    set{studentName=value}
    
    }
    
    //获取信息{定义方法}
    
    Public string GetStudent()
    
    {
    
    String info=string.format(“姓名:{0},学号:{1}”,studentName,studentId);
    
    Return info;
    
    }
    
    }  

    11:关于对象的调用

    //创建对象
    Student objStudent=new Student();
    //给对象属性赋值
    objStudent.StudentId=1001;
    objStudent.StudentName=”阿辉”;
    //显示对象的属性(调用方法)
    String info=objStudent.Getstudent();  //类名.方法名
    Console.writeline(info);
    Console.readline(); 

    二:字段与属性

    1:访问修饰符

    作用:限制对象的属性或方法可访问的范围(作用于类的内部和外部)

    类型:

       private(私有的:外部不可见,不可访问,只在本类可以访问,默认的)

       Public(公有的:外部可见,外界可以访问)

       Protect(受保护的:只在本类和子类中被访问)

       Intemal(只在本项目中被访问)

    2:在方法中如果去掉public,则系统自动变为private,对于private修饰符外界不可访问,如果访问会报错,而且通过(.运算)不可自动出现;

    3:字段(类的成员变量)

    字段一般用private来修饰(是我们的私有财产),通常只供类的内部的不同方法使用;

    4:属性(描述静态特征){是什么,具有什么特有的属性}

           字段私有化,属性是公有化;其中有get();set();通过value将外部值赋私有字段;

           属性是外界访问私有字段的入口,属性本身不保存任何数据;属性中的get,set;

           Get为读取时返回字段的值,set外部来赋值;

    5:使用属性避免非法数据{在get,set中加入if,,else进行判断}

    6:可以将属性设置为只读;{无set方法,无法为其赋值}

    7:没有对应私有字段的属性,属性内部可以添加如何需要的业务代码,如方法的调用;{其属性处理属性的能力超强}

    8:字段与属性比较

       字段(成员变量)为类的内部做数据交互,字段一般是private(私有的)的;可以为其赋值,也可以获取字段的值,当需要为外部提供数据时,请将字段封装为属性,不要去使用共有的字段;

       属性一般向外界提供数据,主要描述数据对象的静态特征,一般用public,可设置为只读,只写属性,提高数据的安全性。也可以在内部添加业务逻辑,避免非法数据;

    三:类的方法和构造方法

    1:方法表示一个类或对象能够实现的操作,即对象的动态特征。一个类中主要是通过方法把字段和属性的值传递出去;

    分类:实例方法,静态方法,构造方法,抽象方法,虚方法;

    2:方法的作用

      *规定了类主要实现的功能;

      *方法封装在类里面,外界调用时不需要了解内部细节,体现了其“高内聚”“低耦合”特性;

    3:书写类中方法的错误集合

        *忘记返回值,提示并非所有路径代码都有返回值;

        *返回值定义的类型与返回值数据的类型不同;

        *变量在使用中超出作用域

    4:构造方法的调用优先与其他的方法,其中参数的传递和一般的方法传递一样;

    这里的调用是因为我们每一次使用对象的时候都会New一下,这里就调用了类中默认的构造方法,这里可以进行重载的实现,当你想为其进行初始化时。

    5:构造方法可以进行初始化,使用有参数的构造方法可以避免用户单个初始化对象属性的麻烦;在构造方法中统一初始化就可以使程序变得更加美观;

    6:构造多个构造方法

    构造方法自身调用时用{:this(stuld,stuName)}完成自身方法的调用;

    7:构造方法与实例方法的区别

    构造方法:

    *用于对象的初始化,一个类中至少有一个构造方法;

    *不能显示调用,只能在创建对象时使用new来调用;

    *无返回值;无括号包裹;

    *构造方法名称必须与类名一样;

    实例方法:

    *用于表示对象能够干什么,一个类中可以没有任何实例方法;对象的动态特征;

    *只能显示调用:对象名.方法名。

    *可以有返回值,没有时必须以void表示;

    *方法的命名要有意义,不能与类名相同; 

    8:对象初始化器

    wps9866.tmp

    中间的语句块,必须以“,”分隔;

    *只能初始化属性值;

    *只能在调用者中使用,而构造方法初始化必须写在类中;<CTOR>

    9:方法的重新定义(三种)

    wps9876.tmp

    10:this关键字

    *this表示当前类的对象,用于访问该类成员变量或方法;

    *当成员变量和局部变量重名时使用this区分;

    这里还有个base关键字,当我们的类继承字别的类时,我们通过base来直接使用父类。

  • 相关阅读:
    4.C#的选择语句练习
    3.C#中的选择语句
    java包静态导入,继承
    新的学期要继续学习喽
    桌球小游戏
    JAVA和C语言的区别
    BIV+CSS网页的标准化布局
    层叠样式表
    学PHP也要懂得HTML
    web开发入门
  • 原文地址:https://www.cnblogs.com/netxiaohui/p/4900998.html
Copyright © 2011-2022 走看看