对象与类总结

1.1面向对象程序设计概述

 Java一切皆对象,Java的面向对象思想让程序有更好的封装性,每个对象可以独立的成为一个单元,它们负责各自的数据管理。
 对象与类密不可分,说完对象是什么就该讲类是什么。对象的产生就是由类实例化而来,类就像对象的一个生成模板,通过这个模板可以生成很多个对象,对象中的数据成为实例域(第一次提到这个域的概念,很重要。后面会用到)。
 对象有三个主要特征,通过这三个特征可以完整描述一个对象:1,对象的行为。2,对象的状态。3,对象的标识。同一个模板class生成的对象具有相同的行为,每个对象的状态可能随着时间发生改变,通过调用对象的方法实现改变对象状态的目的。虽然对象生成自一个模板class,但是每个对象的标识一定不同,状态往往也存在着差异。

  • 识别一个类的方法就是:每个类名是名词,类中方法为动词。我感觉类就是class,很容易就能辨别。类还分为外部类和内部类,还有匿名内部类。类的种类很多。不过都会带有class。类有这么多,那彼此之间肯定会有某种关系,后面就衍生出了类的继承,类的依赖,聚合等关系。Java中没有类的话,估计对象也没了,然后很多东西都做不了了。

2.1使用预定义类

 预定义类是说Java中有一些类是提前定义好的,其中有一些方法我们可以通过类名.方法名 来调用。如果我们要使用一个对象,我们必须先将对象初始化,然后指定对象的初始化状态(再次温习对象的状态是什么,对象的状态就是对象中的实例变量的值,因为实例域的值往往不止一个,所以这一组实例域的值组成了对象的状态。说白了就是对象的一些初始化变量的值,什么是实例域,实例域就是对象中的一些数据。比如有一个对象是天气,实例化对象后,将对象的风速设置为3,那么这个3就是数据,是对象的实例域。一个对象的所有实例域组成了对象的状态)。对象在创建然后初始化之后,就可以使用对象的方法。Java中使用构造器来创建一个实例,并给这个对象实例初始化。构造器的定义引发了一个新的概念,叫重载(就是说方法名相同,但是参数不同,这样就是重载了一个方法)

  • 从类生成的对象可以赋给一个对象变量,代表这个变量的引用这个对象。书中的一句话很好:"一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。"。
  • "任何一个对象变量的值都是对存储在另一个地方的一个对象的引用。"
  • "显式的将对象变量设置为null,代表这个对象变量目前没有引用任何对象。"

3.1用户自定义类

  用户自定义类有三个大部分;1,实例域。2,构造器。3,方法。

  • 实例域很容易理解,就是类中定义的用来保存数据的。
  • 构造器总是伴随着new关键词一起使用,当一个对象被创建的时候,实例域将被赋值,且只能被执行一次。
  • 方法用于操作以及存取他们的实例域。(书中这个总结挺到位的)
  • 类中还有一个this关键字,代表这个类对象。方法中表示隐式参数。
  • 类中的实例域可以更改和访问。
  • 在用户自定义类中,涉及到了类的访问权限。所以必须在这个地方提到与类有关的所有访问修饰符。
  • public,表示共有的,所有类都可以访问这个类或者这个方法。
  • private,表示这个方法是私有的,其他类无法访问。
  • final实例域,final就是常数域,被final修饰的方法或者实例域都不能再被修改,必须确保在对象初始化的时候被赋值,在以后的操作中不能被修改。
  • static,在第一章中的main方法中提出了static这个修饰符,表示静态域。静态域属于类,一个类中只有一个静态域,对于实例域来说,一千个对象,有一千个实例域。但是他们会共享一个静态域。
  • 静态域讲完了,讲静态方法。静态方法是不能操作实例域的,所以对象不能操作静态方法,静态方法的访问需要通过类名.静态方法名 来访问。静态方法只能访问静态域,不能访问类中的实例域,可以访问类中的静态域。

4.1方法参数

 这一章直接讲了:Java程序设计语言在方法参数部分总是采用按值调用。

  • 方法参数可以传递的值类型有两种:1,基本数据类型。2,对象引用。
  • 基本数据类型是将拷贝给参数,但是不是拷贝的引用。方法参数接收对象引用,这个时候改变对象的域,会影响对象引用的那个对象。
  • 方法可以改变对象参数的状态(对象的状态就是对象中实例域的值的集合)
  • 方法不能让对象参数引用一个新的对象。

对象构造

 对象构造可以通过构造器,构造器又可以采用重载的方式有多个,对象在初始化的时候如果不给赋予初始值,那么它就会报错,默认无参构造器会给域赋予初值。基础数据类型赋值为0,布尔赋值为false,对象引用。如果我们在定义类的时候编写了构造器,但是没有提供无参构造器,那么编译器就报错。如果我们在定义一个类的时候没有编写构造器,那么编译器就会自动给我们新增一个无参构造器,给域赋默认值。构造器与构造器之间可以相互调用,采用this关键字。

 这个地方有一个很重要的部分,在类第一次加载的时候,构造器和初始化代码块的
执行顺序。
静态初始化块--->初始化块--->构造函数

  • Java中的访问修饰符有四种:public,private,protected,default。
  • public对有所都可见
  • private对本类可见
  • protected表示对本包可见,以及本包和不同包的子类可见
  • default表示对本包可见以及本包子类可见

---总结
对象和类这一章主要讲了,什么是对象,Java是面向对象设计的。针对对象讲了对象的行为,状态还有标识。接着讲了什么是类,类有哪些组成,三个部分,实例域,构造器,方法。类之间的关系有三种,聚合,依赖,继承。讲了Java中一些预定义的类。对象与对象变量,对象变量采用地址引用,指向同一个对象,类的域可以通过访问器方法访问,更改器方法更改。接着讲了用户可以自定义类,类中的构造器用于创建对下给你并对其初始化。接着讲了域的概念,实例域的一组值组成了对象的状态。方法中的参数有隐式参数和显示参数,隐式参数指方法前的对象,一般用this指代。显示参数就是方法后面传进来的。Java中方法传递参数都采用按值传递。对于对象变量来说传递的是对象的引用,引用也是按值传递。接着讲了类中的静态域属于类。结合讲了对象构造的时候涉及的重载,默认域初始化,构造器执行顺序晚于初始化块。还有Java中的四种访问修饰符,public,private,protected,default,他们有对应的访问权限。最大public。最小类内部private。protected包内以及包外子类。default包内。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容