对java面向对象的初识

  我其实一直想写点东西练练自己文笔,今天写下这篇技术类型的文章也没有一个好的格式和章法,但万事开头难,那么就从面向对象开始.

  我们大部分人都知道互联网软件的存在,时刻影响了我们的现实生活,那么面向对象的编程思想就是从生活中来的,软件出现的目的就是为了描述现实世界,从而解决现实生活所需,究其一点:人的思想上刻画了现实世界,用编程语言来实现,而面向对象是最符合人的思考方式的。世界各样的事物靠分类来区别开来,有实例对象来行事特例行为,程序通过也同过类与对象来一一描叙清楚

  开始来谈谈面向对象里常带有的概念:类{属性/方法},对象,初始化代码块,权限修饰符;特征(继承,多态,封装);其他涉及到(抽象,接口,单例模式.....其实这也是3大特征有关),这里面的思想贯穿整个java 的编程语言,理解起来还有靠后期慢慢在实践中领悟了。

  一:类与对象

  (1)类的加载顺序:程序代码在任何时候都有一个执行顺序,一个java文件从被加载到被卸载这个生命过程,总共要经历5个阶段,JVM将类加载过程分为:1
  加载->链接(验证+准备+解析)->初始化(使用前的准备)->使用->卸载。但我们必须知道的是静态代码执行初始化顺序依次是:(静态变量、静态初始化块)–>(变量、初始化块)–> 构造器;如果有父类,则顺序是:父类static方法 –> 子类static方法 –> 父类构造方法- -> 子类构造方法。

  (2)属性:概念主要有两个:成员变量(有的把static修饰的变量也叫成员变量,但我一般把这里的变量成为全局变量,因为他的属性数据的共享时间与共享范围和类一起,就是牛)与局部变量。从实际出发去考虑这两个存在的价值,例如:一个人带有属性有:身高,年龄,性别等自身天生就有;而他在一次去参加篮球比赛是领了球衣11号,因此,在这次运动中他获得了新的属性值,该属性值也会随着球赛的结束而消失。前者就可以定义成为成员变量,后者球号就可以只定义在打篮球时才有的属性,打篮球的功能行为可以写成此类的实例方法,当他在想打篮球是又可以领11号球衣完成行为方法。一个例子解释了成员变量,局部变量,和实例方法。由于使用的范围不一样,成员变量发在内存堆里(等类加载完了之后才算完),局部变量放在内存栈里(方法一结束就把里面的局部变量全清空,不用等类加载完)。

  (3)方法:上面的内容已经解释了一种,还有补充。类方法(static修饰的方法,与类的静态属性一起同时加载,由于加载时间比实例方法早而且一直跟类一起存在,出现两种调用情况:【a】后来被调用的实例方法可以写静态方法,类方法里不能直接使用类方法,理由是已经加载还么有完不能再次被类加载,只能被调用。【b】在静态方法中只能通过new对象的方式去调用其他的类方法,我想的是这个对象引用无需加载执行任何一处的功能);介绍到了对象就可以介绍构造方法了。

  (4)构造器:当创建一个无参对象时,类里都会有一个无参默认构造方法,一定要注意当new对象时不光是自己定义一个有参的构造方法,还应该把默认构造方法手动添加上去。作用:①创建对象 ②给创建的对象的属性赋值(类对象的属性赋值的先后顺序:①属性的默认初始化 ②属性的显式初始化③通过构造器给属性初始化④通过"对象.方法"的方式给属性赋值;赋值可以有四种,但类外用创建对象时给他赋值又方便又效率)

  二:三大特性

  (1)封装:概念很少,一句话:属性藏起来,公共方法提供其访问(开发时,记住,属性是用于存储数据的,直接被访问,容易出现安全隐患,所以,类中的属性通常被私有化,并对外提供公共的访问方法。/私有仅仅是封装的?一种体现形式而已)。总体好处:将变化隔离;便于使?用;提?高重用性;安全性。

  封装以多种形式实现代码的复用:

a.数组?用于封装数据,就是?一个具体的实体;

b.啥事实体的问题,就是用于封装多个数据的

c.啥是对象?对象是将函数等一些内容进?行了封装。

d.多程序读取?一个配置?文件时,建议配置?文件封装成对象。

e.内部类之所以定义在内部就是为了封装。想要获取内部类对象通常都通过外部类的?方法来获取。这样可以对内部类对象进行控制。

f.异常就是 java 按照?面向对象的思想将问题进行对象封装。这样就方便于操作问题以及处理问题。

g.包是?一种封装形式,?用于封装类,想要被包以外的程序访问,该类必须 public.

h.对字符串进行了对象的封装。这样的好处是可以对字符串这种常?见数据进行?方便的操作。对象封装后,可以定义 N 多属性和行为。

i.基本数据类型对象包装类:是按照?面向对象思想将基本数据类型封装成了对象。好处:1:可以通过对象中的属性和行为操作基本数据。2:可以实现基本数据类型和字符串之间的转换

j.DateFormat df = new SimpleDateFormat(); 该对象的建?立内部会封装?一个默认的?日期格式。11-12-1 下午1:48

k.因为字符每个国家都不?一样,所以涉及到了字符编码问题,那么 GBK 编码的中?文?用unicode 编码解析是有问题的,所以需要获取中?文字节数据的同时+ 指定的编码表才可以解析正确数据。为了方便于文字的解析,所以将字节流和编码表封装成对象,这个对象就是字符流。只要操作字符数据,优先考虑使用字符流体系。

l.反射技术: 其实就是动态加载?一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,并将字节码?文件中的内容都封装成对象。

  我已经列举了很多,值得注意的是23种设计模式的思想会有很多会用封装的思想,自己也可以为自己的项目写一些封装代码重复用免得重复写浪费时间。贴切的说一个例子,没有封装就是人自己动手搬每一块砖,有了之后可以自己创出能扮砖的容器,一次用完了下次可以继续使用它去完成同样的事,又称封装的工具。

  隐藏:权限修饰符(public private protect 缺省;package /import都会用到)

  (2)继承:单继承与多接口实现的完美配合使得我们在编写程序时更灵活,为了扩展实现功能有了子承接父页的继承(extends)关系,有了血缘关系就会有高耦合的弊病,最后用了接口,发现开发中接口的解耦的能力还不够,希望能分成独立的模块去完成但他们之间彼此还是有联系的高内聚不能减少,到现在我和同事就用spring框架去完成项目,效率提高了还很少有代码的牵扯。

  回来继续说,1.抽象类(abstract)被继承也能被创建对象,注意至少有一个是非私有的抽象方法,还可以使用main方法。通常是被继承又子类去实现了。2.接口(interface)只能定义抽象方法和常量,实现它的子类必须实现它的所有的方法,扩展性是多样的比单继承好,一般优先考虑。

  (3)多态:体现:父类引用或者接口的引用指向了自己的子类对象。//Animal a = new Cat()。多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问?类中特有的方法。(前期不能使用后期产生的功能,即访问的局限性)。多态是在思想上的改变:以前一个对象只能指挥一个对象去工作,现在可以一个引用可以去调用多个对象的方法使用。

  每次都很想把博文写得更完善些,更能有所得,但学习可能眼界得局限性,所以希望大家能指出我的不足之处。

  

  

  

时间: 2024-10-10 00:03:14

对java面向对象的初识的相关文章

2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月26日 实验密级:非密级 预习程度: 优良 实验时间: 2 Hours 仪器组次: 必修/选修: 必修 实验序号: 04 实验名称:Java面向对象程序设计Android开发 实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBI

java面向对象的核心思想

Java面向对象-抽象类与接口 1.Java final关键字的使用 package edu.tongji.fni; /*final关键字 * 1.final关键字在java中被称为完结器,表示最终的意思 * 2.final能声明类.方法.属性: * 使用final声明的类不能被继承 * 使用final声明的方法不能被重写 * 使用final声明的变量变成常量,常量是不可以被修改的 */ class People{ //前面加了final下面的类会报错 public void tell(){ }

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

第5篇-JAVA面向对象Ⅰ

第5篇-JAVA面向对象Ⅰ 每篇一句 :面向对象面向君,不负代码不负卿 初学心得: 代码虐我千百遍,我待代码如初恋 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-03| JAVA面向对象 Ⅰ] 1.JAVA作为一种面向对象语言,具有以下基本概念: ● 多态 ● 继承 ● 封装 ● 抽象 ● 类 ● 对象 ● 实例 ● 方法 ● 重载 2.面向对象 什么是面向对象?: 面向对象是一种编程思想 通俗的说:面向对象是一种思考问题的思维方式 为什么使用面向对象以及它的作用 计算机语

《Java面向对象编程第二版》今年出版以来获得读者一致好评。

<Java面向对象编程第一版>自2016年出版以来,承蒙读者们的厚爱,至今已经重印了二十多次,成为国内Java领域里的经典Java技术宝典.在当当网上获得了1500多条好评: http://product.dangdang.com/9186890.html?point=comment_point 应广大读者的要求,为第一版进行了升级,第二版融合了最新的Java8的语言特性,它继续为Java开发人员们提供丰富全面的技术支持和帮助.在京东网上读者们对第二版的好评如潮,一致认为这是Java开发人员必

java面向对象 泛型

这个第一篇知识梳理的博客,希望我可以坚持下去将知识进行总结. 这是在极客学院里看到的视频,目录如下,蛮清晰的.然后我将视频中所说再记忆下. java面向对象之泛型:认识泛型 Java SE 1.5的新特性,泛型的本质是参数化类型,可以代表任何数据类型. java面向对象之泛型:构造函数中使用 class Gen<T>{ private T value; Gen(T value){//构造函数中就泛型就不需要用尖括号了 this.value=value; } public void setVal

JavaSE入门学习24:Java面向对象补充

一Java中的Object类 Object类是所有Java类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认 继承Object类. public class Person{ // } //等价于 public class Person extends Object{ // } Object类中的方法,适合所有子类. 1)toString()方法 在Object类中定义有public String toString()方法,其返回值是String类型,描述当前对

Java程序设计 实验二 Java面向对象程序设计

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏      实验日期:2015.5.7 实验密级:         预习程度:         实验时间: 仪器组次:          必修/选修:            实验序号: 实验名称:       Java面向对象程序设计 实验目的与要求:实验内容 1. 初步掌握单元测试和TDD 2.

java面向对象编程(七)--四大特征之多态

1.多态概念 多态性是对象多种表现形式的体现.比如我们说"宠物"这个对象,它就有很多不同的表达或实现,比如有小猫.小狗.蜥蜴等等.那么我到宠物店说"请给我一只宠物",服务员给我小猫.小狗或者蜥蜴都可以,我们就说"宠物"这个对象就具备多态性. java中的多态,就是指一个引用(类型)在不同情况下的多种状态.也可以理解成,多态是指通过指向父类的指针,来调用在不同子类中实现的方法.也可以理解为"一个接口,多个方法". 实现多态有两种