黑马程序员---面向对象学习
来源:互联网 发布:淘宝买家贷款操作流程 编辑:程序博客网 时间:2024/06/04 17:44
1.类、对象。“人”是类,“张三”是“人”这个类的对象。类是抽象的,对象是具体的。按钮就是类,某个按钮就是对象。对象可以叫做类的实例(Instance)。类就像int,对象就像10。字段Field(和某个对象相关的变量),字段就是类的状态。人这个类有姓名、年龄、身高等字段。类不占内存,对象才占内存。
2.方法Method,方法就是类能够执行的动作,比如问好、吃饭等。类的继承,类之间可以有继承关系,比如“电脑”类可以从“电器”类继承,这样的好处是“电脑”类只需要定义自己特有的字段、方法就可以,也就是只要定义内存大小、CPU型号这些字段或者弹出光驱等方法就可以。父类(Parent)、基类(Base,基业,祖宗十八代传下来的)。
3.面向对象的三个特性:封装、继承、多态。
4.访问修饰符:
private 当前类中可以访问,类中成员的默认访问修饰符。
protected 当前类及子类中可以访问(在继承中用。)
*internal 当前程序集内部可以访问
protected internal 当前程序集或子类中(不同程序集也可以访问)。
public 任何地方
5.惯用法:属性开头字母大写,字段开头字母小写
class Person
{
privateint age;
publicint Age
{
get{return age;}
set{age=value;}
}
public void SayHello()
{
Console.WriteLine("我的年龄是{0}",Age);
}
}
6.构造函数用来创建对象,并且可以在构造函数中对对象进
行初始化。构造函数是用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。构造函数可以有参数,new对象的时候传递函数参数即可构造函数可以重载,也就是有多个参数不同的构造函数。
如果不指定构造函数,则类有一个默认的无参构造函数。
如果指定了构造函数,则不再有默认的无参构造函数,
如果需要无参构造函数,则需要自己来写。
7.对象的隐式转换和显式转换
Chinese ch= new Chinese();
//隐式转换,把子类变量赋值给父类变量
Person p = ch;
//显式转换,把父类变量赋值给子类变量
Person p = new Chinese();
Chinese ch = (Chinese)p;
//如果对象不在同一个继承树路径上
//则不能强制类型转换
Dog g = new Dog();
Chinese ch = (Chinese)g;//错误
//is运算
if(p is Chinese)
{
Console.WriteLine("中国人");
}
else if(p is Korean)
{
Console.WriteLine("韩国人");
}
//as 运算符
Chinese ch = p as Chinese ;
if(ch!=null)
{
Console.WriteLine("中国人");
}
Korean ch = p as Korean ;
if(ch!=null)
{
Console.WriteLine("韩国人");
}
()转换和as 转换的区别:如果转换失败()
会报异常,而as则会返回null。
8.异常与异常处理传统的错误表示方式:错误码。举例。需要知道不同错误码的含义,如果不处理错误码,则程序可能陷入不可以预置的错误。陈摄影师以为文件已经被删除造成的麻烦。
错误码的缺点:不处理则很难发现,每次处理则很麻烦;
难以看出错误的原因;容易使得程序进入不确定状态。
try catch。Exception ex 异常也是对象。
Exception 类主要属性:Message、StackTrace
发生异常后程序默认就退出了,try代码块中的后续代码不
会被执行。catch以后的代码则会继续执行。
不要吃掉异常,一般情况下不需要处理异常。
扔出自己的异常,扔:throw,抓住:catch
9.常量与静态成员
const常量。常量名要大写。一定不会变化的值才能声明为常量。
全局变量。static类变量。
不用new就能用的方法:static方法,static方法其实就是普通函数在static方法中可以调用其他static成员,但是不能调用非static成员。在非static方法中可以调用static成员。静态类,不能被new的类就是静态类。静态类一般用来实现一些函数库。***Helper,SqlHelper,PageHelper。
- 黑马程序员---面向对象学习
- 黑马程序员_C#面向对象学习笔记
- 黑马程序员_java面向对象学习笔记
- 黑马程序员-C#面向对象学习日记
- 黑马程序员--面向对象基础知识学习笔记
- 黑马程序员 面向对象学习二
- 黑马程序员 面向对象学习笔记一
- 黑马程序员-java学习之面向对象
- 黑马程序员-javaSE学习之面向对象
- 【黑马程序员】 学习笔记 - Java面向对象
- 黑马程序员--面向对象学习总结
- 黑马程序员--Java学习07--面向对象
- 黑马程序员--面向对象的学习
- 黑马程序员---基础学习----面向对象1
- 黑马程序员:面向对象---学习笔记
- 黑马程序员------学习笔记(2)面向对象
- 黑马程序员学习日记--面向对象二
- 黑马程序员--学习OC面向对象特性
- GSON学习-台风路径json解析
- RCP获取插件目录中图像文件
- 位运算 进制转换
- JavaBean
- Android知识点textview加横线的属性
- 黑马程序员---面向对象学习
- poj题目分类
- POJ3056:The Bavarian Beer Party(区间DP)
- JavaSE基础之Java语言的跨平台原理(JVM)
- UE 替换
- 数字图像处理:13.MATLAB程序实现
- Linux下对date和timestamp的互转
- Web 开发
- poj2378 树状dp