面向对象基础进阶01

简介: 面向对象基础进阶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:对象初始化器

679140-20151022145546224-918148022.jpg

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


*只能初始化属性值;

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


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

679140-20151022145547880-937887269.jpg

10:this关键字


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

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


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

目录
相关文章
|
5月前
|
算法 编译器 C语言
C++进阶之路:深入理解编程范式,从面向过程到面向对象(类与对象_上篇)
C++进阶之路:深入理解编程范式,从面向过程到面向对象(类与对象_上篇)
68 3
|
6月前
|
C++
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
|
6月前
|
存储 Java
java面向对象进阶
java面向对象进阶
|
6月前
|
人工智能 运维 Java
面向对象进阶
面向对象进阶
67 0
|
设计模式 算法 搜索推荐
C++的编程思想和进阶编程
● 一个模式描述了一个不断发生的问题以及这个问题的解决方案;模式是前人的设计经验上总结出来的对于一些普遍存在的问题提供的通用的解决方案;比如单例模式、观察者模式等 ● 软件中有很多模式 面向对象常见的23中设计模式; 反模式;企业应用架构模式等
54 0
|
存储 开发框架 Java
|
Java 程序员 编译器
【Java编程进阶】面向对象思想初识
之前我们学习了 C 语言,在使用 C 语言解决实际的问题时,我们会把解决问题的步骤封装成不同的函数,然后在需要使用时调用函数执行,这就是面向过程编程的思想。使用面向过程使程序的流程十分清楚,例如完成早上去上学这件事情,我们要粗略做以下的步骤,只要以函数的形式详细的完成每个步骤,就成功的解决了这个问题: - 起床 - 穿衣服 - 刷牙洗脸 - 上学 而面向对象中,我们可以抽象出一个学生类,该类中包含了上面的四个方法,此时我们并不需要按上面的步骤来完成。
100 1
【Java编程进阶】面向对象思想初识
|
Java
Java面向对象基础1——基础概念
Java面向对象基础1——基础概念
98 0
Java面向对象基础1——基础概念
|
Java Android开发
Java面向对象程序设计基础实战
Java面向对象程序设计基础实战
221 0
|
存储 PHP 开发者
面向对象基础总结|学习笔记
快速学习面向对象基础总结