`
wx1568444409
  • 浏览: 14581 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

面向对象基础进阶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来直接使用父类。

转载于:https://my.oschina.net/Andyahui/blog/611615

分享到:
评论

相关推荐

    面向对象进阶,面向对象进阶

    1. 封装:封装是面向对象的基础,它将数据和操作数据的方法绑定在一起,形成一个独立的单元——对象。在Java中,我们通过访问修饰符(如public、private、protected)来控制类的成员对外的可见性,实现数据的安全...

    Java面向对象的三大特性和面向对象的进阶

    主要简述Java面向对象基础,进阶,高级;从封装、继承、多态、接口、内部类、抽象类和代码块 适合刚开始的新手参考,毕竟我也是自学的 主要可以使用在计算机刚入门的小伙伴或者回来看一看复习一下简单的基础的 ① 凡...

    C++程序设计_面向对象进阶_C++_

    **C++程序设计_面向对象进阶_C++_** C++是一种强大且广泛应用的编程语言,它由Bjarne Stroustrup在C语言的基础上发展而来,引入了面向对象的编程特性,同时也支持过程化编程。面向对象编程(Object-Oriented ...

    Java编程实训 Java开发基础入门教程1-08 面向对象编程进阶(共37页).ppt

    面向对象编程是Java编程的核心,本教程的"Java编程实训 Java开发基础入门教程1-08 面向对象编程进阶"深入讲解了这一关键概念。本篇主要涵盖以下几个重要知识点: 1. 对象的生命周期:在Java中,对象从创建到销毁的...

    Java面向对象(进阶)- Object类的详细概述

    通过深入理解Object类及其方法,开发者能更好地掌握Java面向对象编程的基础,编写出更健壮、易于维护的代码。在实际项目中,合理地重写`equals()`和`toString()`方法对于调试和日志记录尤其有用。

    由浅入深学C++基础进阶与必做300题 源程序

    由浅入深学C++基础进阶与必做300题 源程序 解压后122M C++是近年广泛使用的程序设计语言,由C语言的基础上发展而来,实现 了由面向过程到面向对象的转变,全面支持面向对象的程序设计方法。C++ 语言在软件工业领域...

    老王python基础进阶项目

    根据提供的文件信息,“老王python基础进阶项目”是一套旨在帮助学习者深入了解Python编程语言的教程。下面将从以下几个方面来详细解析该教程可能涉及的重要知识点: ### 一、Python语言简介 Python是一种高级、...

    面向对象.xmind

    使用Xmind软件大概绘制了一下java面向对象的学习流程,欢迎交流指教! 面向对象基础 进阶 高级 写的框架很细, 初学者可以做参考学习。 谢谢!

    day01-03讲义(面向对象进阶).zip

    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它基于...以上就是关于面向对象进阶的一些关键知识点,这些概念构成了面向对象编程的基础,理解和熟练运用它们将使你的编程能力得到显著提升。

    2020老杜最新版Java零基础进阶视频教程-面向对象课件

    【Java面向对象基础】 在Java编程中,面向对象是核心概念之一。面向对象编程(OOP)基于类和对象的概念,允许我们通过封装、继承和多态性来组织和管理代码。以下是一些关于Java面向对象的基础知识: 1. **final...

    Javascript面向对象基础.rar

    在这个“JavaScript面向对象基础”的资料中,我们将会探讨JavaScript中的类、对象、封装、继承以及多态等关键概念。 1. **对象与对象字面量** 在JavaScript中,对象是由键值对组成的无序集合,可以使用对象字面量...

    Java面向对象基础源代码教程

    在"Java面向对象基础源代码教程"中,我们将深入探讨这一主题。 首先,我们需要理解面向对象的三个主要原则:封装、继承和多态。封装是将数据和操作这些数据的方法捆绑在一起,形成一个独立的对象。这样做可以隐藏...

    PHP5面向对象开发教程第二章-PHP5面向对象进阶

    本教程将深入探讨PHP5的面向对象特性,帮助开发者从基础过渡到进阶阶段。 首先,我们要理解PHP5中的类与对象。类是创建对象的蓝图,它定义了属性(variables)和方法(functions)。例如,你可以创建一个名为...

    python基础入门教程 基础进阶教程 共155页.pdf

    本教程涵盖了Python的基础知识和进阶内容,一共155页,涵盖了Python语言的基本语法、数据类型、控制结构、函数、模块、面向对象编程、异常处理、文件输入输出、网络编程等方面的知识点。 通过本教程,读者可以从零...

    python基础进阶1.6:面向对象之类,对象及__init__(),self相关用法讲解

    在本节"Python基础进阶1.6"中,我们将深入探讨类、对象以及`__init__()`和`self`这两个关键概念。 首先,**类**是面向对象编程的核心,它是创建对象的蓝图或模板。在Python中,我们通过定义一个类来描述一类事物的...

    Python面向对象进阶学习

    在初步掌握了Python面向对象的基础概念后,进阶的学习显得尤为重要。本篇文章旨在为读者提供更深入的理解与实践指南,帮助大家更好地掌握Python面向对象编程的核心技巧。 #### 二、进阶知识点详解 ##### 1. @...

    java基础与进阶资料

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、健壮性和安全性著称。"Java基础与进阶资料"这个标题暗示了这份压缩包中包含的内容涵盖了从Java的基础概念到高级特性的学习材料,旨在帮助开发者从入门到精通...

    JAVA-SE入门学习——第六讲面向对象进阶

    分类思想是面向对象设计的基础之一,意味着将任务分解为各个独立的部分,让每个部分专注于特定的职责。在Java中,这通常表现为类的划分。比如在黑马信息管理系统中,Student类用于封装学生信息,StudentDao负责数据...

Global site tag (gtag.js) - Google Analytics