java面向对象程序设计总结

系统学习面向对象语言设计,java是一门完全面向对象设计性语言,就连最基本的基本类型java自身也都包装了相应的类型与方法,那么什么是类,什么是对象,通俗点说

类就是对象的模板,就像工厂里面的模子,机器比对一种模板制作了一件物品,那么那件物品就是这个模子(类),对应的一个对象,它有自己的属性以及自己的方法。说到一个类不可不说的就是他的方法,与属性,所谓属性就是类里面的一些变量或常量,而方法就是对象(类)调用这个方法可以做成什么事情,比如操作类里面的数据,又比如可以排序啊,又比如可以打印对象啊.....诸如此类的方法林林总总。那么要学会面向对象,最先接触的无外乎就是类与对象——方法与属性。

1>属性:类就是我们对我们现实生活的事物的抽象,比如鸡鸭鹅兔——家禽类 ; 飞机轮船汽车——交通工具类;铅笔钢笔圆珠笔——文具类。种种的现实事物都可以抽象成java中的类,而属性就是实际对象所具备的一些辨识特征,毕竟每一个对象他们的属性都不同,即使相同在java里面也是不同的,因为毕竟也是不同的对象,不过你重写了equals方法那就另当别论了。关于属性有几点需要注意的,

第一就是属性的初始化顺序,首先当一个类被加载的时候,第一位初始化的就是他们的成员属性,当然有静态成员属性,那么普通成员属性就只能屈居第二了,其次就是构造器—构造函数,与C++相似java也有构造函数用于初始化变量,但是java不用像c++一样手动调用析构函数,java有自己的系统垃圾回收机制.....最后就是函数,函数则是要等到对象或者类去调用他们的时候他们才会加载里面的属性变量....

第二是关于属性的继承的,对于子类没有隐藏父类属性的继承,到没有什么可以强调的;若是子类中将父类属性给隐藏了,那么就需要注意一下,当我们用子类对象给父类引用赋值的时候了,子类若是给父类引用赋值,若是存在属性的隐藏的话那么,子类本身自身就存在两种状态一种是自身的状态,另外一种就是父类隐藏属性的状态,这种隐藏属性在子类中只能用super.属性名可以看到,或者是将子类对象强转成父类对象后利用父类的函数可以访问或那时候直接访问

第三 就是一些关于,静态属性(类属性),泛型属性等等


2>方法:方法就是类里面一些,能让属性具有活力的催化剂吧,没有方法一个类即使有再多的属性,也没有用,因为没有办法利用它们去做事呀,对于方法最多的应该就是java的封装特性,我们可以把我们自己常用的方法,通过一个类,几个函数封装起来,便于以后利用。这里要说一下的就是get set方法,这两个方法可以灵活的得到一些对象的属性,以及设置对象属性。


............................................每天的学习总结

4.7
继承
1.子类继承父类的全部属性,全部方法,但是私有变量和私有方法,子类的对象是不能直接调用到的。
2.子类的非私有属性(变量)直接被继承下来而且可以被使用赋值,在本类中赋值或者在外部通过对象用构造函数赋值。




4.13泛型(通配符)
学习泛型主要是为了避免我们在编程过程中,频繁的向上向下转型犯一些过失性错误,而编译器又不能检测出来的错误。
1>泛型类  class X<T1,T2,T3....>这里的Ti就是一些在类中可能出现的类型,个数由你而定.
定义好了泛型类以后 就是初始化类里面的属性,有两种方式去初始化,第一就是利用成员函数set方法一一赋值,
第二就是 我们的构造函数,用第一方法的时候没问题,但是用构造方法的时候,new后面的X 也需要跟着<泛型>,
不然类型会不识别,你可以任意放数据,不会编译报错,但是运行一定有问题.




4.14异常类
try catch finally 其中finally可以加可以不加,1>  对于系统自带的异常,我们可以手动抛出throw,手动解决try-catch,若是抛出后
没有解决的,那么交给上层调用者函数解决,若是上层就是main的话,系统直接就处理了;若是没有,那么看上层函数有没有处理这个异常的
方法,即看有没有catch捕获到该异常类,若是没有这个类那么就交给再上层,这样依次上交,判定,一直到main函数,最终交给系统处理。


2>对于我们自己写的MyException() 自己写的异常类  就不能像系统的异常那么任性了,只有我们自己在每一层函数中预测,它可能发生的异常
若是你不手动用throw 抛出的话,系统是不会检测的,所以一般自己手写的异常,是需要判断性语句的,那对于手写的自己的异常类一定是继承
系统的Exception,你可以自己写构造方法,自己重构tostring方法(打印的就是你自己认为的异常)...然后throw抛出之后,就是处理了,若是该层
语句层里面有try catch并且能捕获到这个异常,那么程序就在这一层处理了,然后结束了跳转直接执行finally语句内容....若是没有处理的语句块
那么你就必须在函数头 申明一下MyException 证明我可能出现异常但是不一定在这里面处理,有处理语句就在这里处理,没有的话就交给上层代码块
处理,然后又是递归....这就是系统自带,和自己自定义异常的抛出-处理-申明的区别。我的理解就是系统自带的异常和java包装类自动装箱,自动
拆箱是一样的,你手写是对的,不写也对..捕获到了能处理自己处理,不能处理最后抛给系统.....但是自定义的就不一样了,你一旦throw出来了
你就必须有一个throws申明或者 try catch二者之一来处理,不然不通过....不能抛出后不处理或者又不在本层函数的头部申明,那就是错误。


3>异常丢失
利用异常链


4.13  io知识
第一点:读取一个文件里面的数据,FileReader类  建立一个对象 p,调用里面的read()方法,一般用一个char[]数组装里面的字符,
p.read(a)  就能读出文件里面的数据放到char数组里面,返回值是这个文件的字符数,其中换行和回车是占两个字符---->这里就讲一下
怎么把读取到的回车和换行去掉  利用正则表达式  Pattern类 中的   Pattern p = Pattern.compile("\r|\n"),Matcher m = p.matcher(str);
String str1 = m.replaceAll("");这样就把回车给去掉了...
第二点:读取文件用FileReader的子类 BufferedReader ,先建立FileReader 对象a(对应路径),再建立BufferedReader
 对象b(利用a的基础上)...

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值