类与对象的学习之路

---恢复内容开始---

       学习java也有一段时间了,这周踏上了类与对象的学习之路,回过头来总结一下类与对象的基本知识。之前在大一上就接触了Python语言跟C语言,现在开始学习java语言了。我觉得跟之前学的C语言还是有区别的,至于在java书中提及的C++没学习,听别人说C++跟java有点像,这两种编程语言都是面向对象的,并且编程语言本身之间都有很多相似相同的地方。

     一.说说类与对象

        说到面向对象,那么不得不提的就是类和对象了。Java代码是以类为单位的。在我看来,类就是一个模板,比如一个学生类,这并没有指定这个学生类是某某某(换句话说就是没有特定指某个个体),而是抽象出一种学生的模板,每一个学生都包含性别年龄班级学校等等属性,每一个学生也包含一些共同的行为,比如都要完成作业,都要到学校上课,等等。对象则是一个具体的概念了。比如在学生类模板的基础上,我要指一个特定的学生---XX学校XX班的小冯,它肯定具有所有学生的属性和行为,但是她的属性和行为又和其他学生不一样。

 类:是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法); 

对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。

        可以一句话来总结出类和对象的区别:类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。
 二. 使用 this 关键字 
       this 关键字是当前对象(方法或构造器被调用的对象)的引用。在实例方法或构造器内部,可以使用 this 访问当前对象的所有成员。
(1).使用 this 与字段 
      使用 this 关键字的主要原因是方法或构造器的形参会覆盖相应的字段。 
构造器的每个参数都会覆盖对象的相应字段。
(2).联合使用 this 与构造器 
       从构造器内部使用 this 关键字可以调用同一个类的其他构造器。通常称这种做法为显式构造器调用。 
这里给出的另一个 Rectangle 类。
 三.控制对类成员的访问 
访问级别修饰符决定其他类是否可以访问特定字段、调用特定方法。访问控制有两个级别。
 
顶级: public 或包级私有
成员级: public 、private、protected 或包级私有

四. 用户自定义类

(1).类变量
当多个类都创建自同一个类时,它们都有自己不同的实例变量副本。每个对象的这些变量都有自己的值,而且存储在不同的内存空间。
有时候需要有些变量对所有对象都公开,这可以由 static 修饰符实现。声明中有 static 修饰符的字段叫做 静态字段 或 类变量。它们与类相关联,不与对象关联。类的每一个实例都共享一个类变量,该类变量存储在内存的固定位置。任何对象都能改变类变量的值。即使不创建这些实例,也有方法处理这些类变量。
举个例子,假设要创建多个 Bicycle 对象,并将他们从 1 开始编号。对象的 ID 唯一,因此是一个实例变量。同时需要一个字段来记录已创建的 Bicycle 对象数目,从而知道为下一个对象赋值哪个 ID。 

(2). 类方法
Java 程序语言也支持静态方法,跟支持静态变量一样。静态方法用 static 修饰符声明,可以直接用类名调用。

(3).常量
联合使用 static 和 final 修饰符课定义常量。final 修饰符表示字段的值不能再更改。

五.构造函数

       构造函数就是在创建对象时,用来初始化对象的方法。
  构造函数的特点: 
  1.函数名必须和类名相同
  2没有返回值
  注意:
  1.如果类中没有声明构造方法,那么编译时会自动生成一个默认的构造方法,只是会责怪方法体里面什么也没有写。
  2.如果类中有声明构造方法,那么就不会再去生成默认的构造方法,而直接使用你定义的构造方法。
  3.构造方法也可以重载:通过形参类型和个数的不同,可以定义不同的构造方法体。在创建对象时根据传进来的实参的类型和个数来选择到底调用哪一个构造方法。
    
        总的来说,这一章有点难,学习这一章有点困难,理解起来也不是很容易。
 
 
 

 
 
原文地址:https://www.cnblogs.com/twdc136/p/7500194.html