java面向对象基础

2人阅读 评论(0) 收藏 举报
分类:

java文件与class与class文件的关系:

1,一篇java文件可以书写多个类;

2,一篇java文件只能有一个公共类,公共类的名称必须与java文件名一致。(实际书写中,要做到一篇java文件只有一个类,内部类除外);

3,一篇java文件可以生成多篇class文件,class文件的数量取决于类的数量(1个class文件对应一个类);

4,class文件的名字与它对应的类名保持一致,与java文件名无关(所以JVM中的加载器叫做类加载器,加载的是class文件);


方法重载:在一个类当中,当有多个同名方法的时候,那么只能根据参数列表的不同(个数,类型,顺序)来区分,构造方法就是一个简单的方法重载。

方法重写:一个类继承了父类,对父类方法的重新实现,这个重新实现就是使用相同的方法名,相同的参数列表,相同的返回类型,访问修饰符要大于等于父类。重写后的方法不能抛出更多的异常,


构造方法:用来产生对象,产生对象的步骤:1首先在堆中划分空间,根据类的定义确定空间的大小;

2,在该空间划分属性;

3,对属性进行初始化(如果没有赋初始值,基本数据类型为0,引用数据类型为null);

4,执行我们在构造方法中书写的代码;

如果没有定义构造方法,JVM会自动提供一个默认的公共无参构造;构造方法的语法:public 方法名(形参列表)。1,方法名必须是类名;2,没有返回类型,void都没有;


== 是用被用来表示两个对象变量中的引用是否指向同一个对象,equals()用来比较两个对象在业务上是否相等:equals在根类中,由于不能确定每个子类具体的业务行为,所以只能进行简单的实现,就是比较引用相等,所以子类的实现经常需要重写该方法完成业务比较。


final:修饰变量(常量),修饰方法(不能被重写),修饰类(不能被继承)。

static:修饰属性:1,全局共享一个值,2与对象无关,而是与,类有关,所以static属于类属性,可以直接使用类.的方式直接调用,3常量可以无脑定义成static。

修饰属性的内存特性:1改属性不会存放在对象身上,而是放在数据段中的静态区域中,2static修饰的属性是在类加载的时候直接放入静态去中,所以可以用类名.的方式直接调用,无须产生对象。

修饰属性对应的场景:变量属性必须判断出要有犬类共享唯一值这一特征才能这么使用。

static{}:静态初始化块:类加载的时候自动执行,一个类只会加载一次,在main方法执行之前,可以在加载期做一些加载动作,不会影响运行期的执行性能


继承:子类继承了父类以后,可以自动拥有父类的属性行为,除了父类的构造,但是构造方法参与了继承机制

this和super:this能够访问到1,本类自己定义的所有方法和属性,不受访问修饰符的限制,2,来自父类的修饰符所允许的属性行为。

super:能访问的只是父类修饰符所允许的属性和行为。只有一个情况分开用,当this是重写后的效果,super是重写前的效果


instanceof  用来判断对象是否是某个类的实例,是一个关键字,属于一种关键字,在做向下转型的时候,要习惯于先用instanceof做一次判断,保证运行期不会报错。


类型转换:引用数据类型也能做数据转换,引用数据类型转换只能在具有继承关系的类之间进行,正是因为沿着继承树转换 ,所以才有向上转型和向下转型的概念。

向上转型:绝对成功,父类引用指向子类对象。

向下转型:只有最终效果体现:本类引用指向本类对象。把父类对象交给子类引用,是强制转换。(https://blog.csdn.net/qq_31655965/article/details/54746235)


抽象:父类没有产生对象的必要性了,父类的作用就是给子类提供共有属性和行为,为避免误操作,吧父类设计为抽象类,用abstract修饰,

特点:1不能产生任何对象,只能被继承,2 仍包含类的一切内容,(属性构造行为等)。一个类只要有一个抽象方法,这个类必须是抽象类。子类重写抽象类以后,必须全部重写所有抽象方法,否则子类也必须是一个抽象类,抽象类只能单继承,并且满足is a 关系。


异常:最完整的异常捕获:try-catch-finally

1,必须要有try块儿,try后可以值接catch,也可以只接finally,2catch可以有多个,finally只能有一个。

throws抛出异常:卸载方法申明部分,后面跟的是异常类的类名,跟多个用,隔开,作用就是在编译器警告,本方法有可能会发生异常,应提前处理,否则可能会导致编译不通过

throw写在方法体中,然后后面跟上1个异常对象,当执行到这句话的时候,就会真正的发生一次异常抛出的动作,当throw抛出的异常对象为非运行时异常的时候,必须在方法申明部分添加throws关键字


包装类是对基本数据的封装:相当于基本数据类型只能存放基本数据,包装类还能提供更多的方法和属性。Integer.parseInt(str)


如果要操纵时间:第一选择是DATE类,获取当前的时间这个类是非常地简单,但是要获取指定时间日期的时候比较麻烦。Date类可以和simpledateformat联合使用。第二选择是calender类,这个类获取指定时间比较方便。


String API:1,与char有关,toCharArray,indexOf,lastIndexOf。2,与英文有关;equals,equalsIgnoreCase。3,与字符串内容相关:concat,replace,substring。4,特有常用方法:trim()去掉前后的空格,split()根据正则拆分,matches()验证字符串是否符合正则表达式

StringBUilder,Stringbuilder:这两个类是用来解决String的拼接问题的:执行速度:builder大于buffer,builder线程不安全。append,delete,insert


集合:List,Set,Collection,Map

List:线性,有序,有下标,所有的ListJ集合都具有相同的增删查改方法,

ArrayList:底层实现使用数组。---适合于做大量的查询动作。LinkedList:底层实现使用双向链表。---适合于做大量的添加删除元素(特别是往中间添加删除)。增删查改:add,remove,delete,set.长度:size()

for-each循环:专门为循环遍历所设计的语法,也支持数组.好处---专门针对从头到尾访问一遍设计,所以语法简单,坏处---1、不能有跳跃或回退等功能算法;2、不能在遍历过程中修改或删除元素

Set:不能存放相同的元素且无序,HashSet先调用了HashCode方法,然后用equals方法,由此来判断set的元素是否相同

//探究一下HashSet是如何判断两个对象相同的?
//1、根据上面的三个表示hello的字符串,分析出肯定不是根据引用是否相同;
//2、根据上面的三个表示hello的字符串,分析出肯定调用了equals方法
//3、HashSet不仅仅是根据equals方法,还要根据hashcode方法---重写equals,必须重写hashcode
//4、先调用hashcode方法,如果相等,再调用equals方法

Map:增删查改,put,remove,get,put,其遍历是遍历所有的键或者值,map.keySet,map.values
Collection:现在没怎么用过


查看评论

Java 面向对象基础 以及进阶知识 总结

Controlling Access to Members of a Class. private: 仅仅可以在自己的类中使用 public: 哪里都可以用 protected: package...
  • YtdxYHZ
  • YtdxYHZ
  • 2016-10-07 01:50:59
  • 396

java基础与面向对象习题与答案

  • 2013年12月12日 18:30
  • 43KB
  • 下载

java面向对象基础 练习 +答案

java面向对象基础 练习 +答案
  • javaniuniu
  • javaniuniu
  • 2016-08-15 16:26:12
  • 5576

java基础学习总结——面向对象

目录 一、面向过程的思想和面向对象的思想 二、简单理解面向对象 三、面向对象的设计思想 四、对象和类的概念 五、如何抽象出一个类? 六、类(对象)之间的关系 七、Java与面向对象 八、为什么使用面向...
  • hello_zhou
  • hello_zhou
  • 2016-05-19 21:22:48
  • 2126

java基础3--面向对象(上)(综合练习题)

为了巩固面向对象学习内容的几道习题。
  • pmsheep82
  • pmsheep82
  • 2011-01-17 19:28:00
  • 6272

JAVA面向对象基础 对象 类 方法学习笔记

面向对象基础 类  构造   对象  使用对象   对象.方法() 类:[访问控制符]  class 类名{ } 属性:[访问控制符]  数据类型  变量名; 方法:[访问控制符]  void|返...
  • zhangyufeng0126
  • zhangyufeng0126
  • 2016-05-29 16:08:08
  • 1397

java笔记01(基础、面向对象、异常)

1、关键字(也叫保留字),49个,true,false,null不是关键字2、字符类型(char)在内存中占有两个字节,严格来说字符类型也算是整数类型3、一个汉字两个字节,所以一个字符只能存放一个汉字...
  • u011412234
  • u011412234
  • 2017-02-23 17:44:07
  • 200

<<设计模式-可复用面向对象软件的基础>>读书笔记

设计模式有多重要,每个做开发的人都清楚。弄清楚设计模式很难,能熟练运用就更难了。读别人的代码是 一件很享受的事情,因为可以挑比人代码的不足,从而产生优越感。但是,如果你突然发现别人的代码写的特别好,...
  • u012301841
  • u012301841
  • 2016-06-25 21:55:07
  • 1143

Java基础系列之--思维导图

Java基础思维导图
  • lb565867230
  • lb565867230
  • 2015-04-29 22:13:36
  • 1759

Java 面向对象(基础) 知识点总结I

1、   类与对象的区别,类是对象的模板,对象是类的实例 2、   创建类的语法:class 类名称{},类中由属性及方法组成 3、   对象的创建语法:          · 声明对象:类名称 对象...
  • aikongmeng
  • aikongmeng
  • 2013-05-28 13:30:07
  • 2830
    个人资料
    持之以恒
    等级:
    访问量: 438
    积分: 138
    排名: 116万+
    文章分类
    文章存档
    最新评论