面向对象学习
来源:互联网 发布:算法导论要学吗 编辑:程序博客网 时间:2024/06/06 05:44
先有面向过程 ,后来演化出来了面向对象。
面向过程:面向的是完成这件事的过程,强调的是完成这件事的动作。
例如:将大象塞进冰箱里。(打开冰箱门,塞进去,关门)三个动作。
孙全 瘦小 矮 小屌丝
孙全踩着小板凳打开冰箱门
孙全找翟盼盼帮忙把大象塞进冰箱里,孙全踩着板凳去亲。
孙全踩着板凳关闭冰箱门
翟盼盼 190cm 非常大力气
1、翟自己就能打开冰箱门
2、翟自己将大象塞进冰箱里,翟可以自己亲一下。
3、翟自己关闭冰箱门
如果我们用面向过程的思想来解决这件事儿,当执行这件事的人的不同的时候,
我们需要为每个不同的人量身定做解决事情的方法。
面向对象:找个对象帮你做事儿。
把大象塞进冰箱里
我们把冰箱作为对象:
1、冰箱门可以被打开
2、大象可以被塞进冰箱里
3、冰箱门可以被关闭
孙全
孙全 1
孙全 2
孙全 3
翟盼盼
翟 1
翟 2
翟 3
面向对象:意在写出一个通用的代码,屏蔽差异。
我对面向对象的理解就是:找个对象帮你做事。
我在黑板上画了一个零星
将 圆圈作为对象
圆圈可以被画在黑板上
将 黑板作为对象
黑板可以被画圆
我在黑板上画了一个圆
张三上来的 哪尺子比这画了一个特别圆的圆
李四上来的 随便一划拉
王五上来了 圆规画了一个圆
圆可以被画在黑板上
圆圈可以被画在黑板上
将圆圈作为对象:这个圆圈可以被画在黑板上。
黑板可以被画圆
黑板作为一个对象:可以被画圆圈 被画方块被画正方向
试着描述孙全和颜XX的特征和行为
姓名:孙全
性别:男
身高:180cm
体重:70kg
年龄:22岁
吃喝拉撒睡一切正常 健康
吃喝嫖赌抽
姓名:颜XX
性别:男
身高:180cm
体重:70KG
年龄:23岁
脑残 身体一切健康
我们在代码中描述一个对象,通过描述这个对象的属性和方法
对象必须是看得见摸得着的
电风扇:属性、方法
外形:三个扇叶
颜色:白色
品牌:XX
方法:转动,扇风
灯:属性和方法
属性:
外形:长的
亮度:500W
颜色:白色
牌子:XX
方法:发光
我们把这些具有相同属性和相同方法的对象进行进一步的封装,抽象出来类这个概念。
类就是一个模子,确定了对象的属性和方法。
对象必须是看得见摸得着的。对象是根据类创建出来的(意思:类就是一个图子,对象就是盖出来的楼)。
2、类
语法:
[public] class 类名
{
字段;
属性;
方法;
}
写好了一个类之后,我们需要创建这个类的对象,
那么,我们管创建这个类的对象过程称之为类的实例化。
this:表示当前这个类的对象。
类是不占内存的,而对象是占内存的。
结构是面向过程。类是面向对象的东西。
3、属性(中间商的作用)
属性的作用就是保护字段、对字段的赋值和取值进行限定。
属性的本质就是两个方法,一个叫get()一个叫set()。
既有get()也有set()我们诚之为可读可写属性。
只有get()没有set()我们称之为只读属性
没有get()只有set()我们称之为只写属性
Field字段
Method方法
Property属性
4、访问修饰符
public:公开的公共的,在哪都能访问。
private:私有的,只能在当前类的内部进行访问,出了这个类就访问不到了。
5静态与非静态的区别
1, 在非静态类当中,既可以有非静态成员(实例成员),也可以有静态成员
2, 在调用实例成员时,需要使用对象名.实例成员;
在调用静态成员时,需要使用类名.静态成员名。
总结:静态成员必须使用类名去调用。而实例成员使用对象名调用。
静态函数中只能访问静态成员不允许访问实例成员。
实例方法中既可以使用静态成员,也可以使用实例成员。
静态类当中只可以使用静态成员,不允许出现实例成员。
静态类不允许被实例化。
使用:
1, 如果想要你的类当做一个工具类去使用,这个时候可以考虑将类写成静态类。
2, 静态类在整个项目中资源共享。
只有在程序全部结束后,静态类才会释放资源。
静态类本身是占内存的。
堆 栈 静态存储区域(静态类)
6,构造函数
作用:帮组我们初始化对象(给对象的每个属性依次的赋值)
构造函数是一个特殊的方法。
1, 构造函数没有返回值,连void也不能写。
2, 构造函数的名称必须跟类名一样。
构造函数的修饰符必须是public
Public student()
{
}
创建对象时执行构造函数。
7、new关键字
PersonzsPerson=new Person();
new帮助我们做了3件事儿:
1)、在内存中开辟一块空间
2)、在开辟的空间中创建对象
3)、调用对象的构造函数进行初始化对象
类本身有一个默认的无参的构造函数。当写一个新的构造函数,则原默认的无参构造函数会被干掉,被取代。
构造函数方便我们快捷的给一个对象进行初始化。
构造函数可以重载。
8、this关键字
1)、代表当前类的对象
2)、在类当中显示的调用本类的构造函数 :this
public Student(string name,int age, char gender,int chinese, int math,int english)
{
this.Name= name;
this.Age= age;
this.Gender= gender;
this.Chinese= chinese;
this.Math= math;
this.English= english;
}
publicStudent(string name, int chinese, int math, int english):this(name,0,'c',chinese,math,english)
{
//this.Name= name;
//this.Chinese = chinese;
//this.Math = math;
//this.English = english;
}
析构函数:~Student{}
当程序结束时,析构函数才执行
帮组我们释放资源
GC Gurbage Collection 垃圾回收机制:不会手动调用GC.
程序结束时GC没有办法马上释放我们的资源,则使用析构函数来立即释放资源。
- 面向对象学习史
- 面向对象学习笔记
- 面向对象学习史
- 面向对象的学习
- 面向对象学习史
- javascript面向对象学习
- java面向对象学习
- php 面向对象学习
- javascript面向对象学习
- 学习C++面向对象
- JS面向对象学习
- JAVA面向对象学习
- Java面向对象学习
- PHP学习---面向对象
- JS学习 面向对象
- Java面向对象学习
- 学习面向对象思想
- C++学习 面向对象
- Java Static代码块与构造方法初始化顺序
- Qt Quick中的信号机制
- Python编译器的选择与比较(入门必备)
- iOS--设置Launch Image 启动图片
- UIMenuController的使用,对UILabel拷贝以及定制菜单
- 面向对象学习
- SecureCRT 连接 Ubuntu
- ZOJ 2872 Binary Partitions
- Ajax乱码解决
- eclipse内存溢出错误
- strpbrk
- web 间的通信问题解决方案
- 文件,文件夹编码转换
- Sphinx语音识别学习记录 (三)-小范围语音英文识别