Java类和对象总结
一、类和对象的初步认识
-
面向对象:C++、JAVA
面向对象就是用代码(类)来描述客观世界的事物的一种方式,一个类主要包含一个事物的属性和行为。
面向对象注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来 -
面向过程:C语言
面向过程注重的是过程,在整个过程中所涉及的行为,就是功能。 -
什么是类:类就是高配的结构体(结构体是自定义类型(自定义类型是基础类型的组合))。
类中既包含了数据(属性/字段/成员变量),也包含了动作(方法)。
抽象:把具体事物的核心信息提取出来,并进行表示。结构体就是把现实生活中事物的抽象化。
类存在的意义:把客观事物进行一个抽象的表示,但与结构体相比,类的抽象能力更强一些要想使用类(类是自定义类型),还要把这个类型的变量创建出来,这个变量就成为“对象(object)/实例(instase)”
总结:
- 类 就是一个模板,对象 就是模板产生出来的实体
- 类用关键字class修饰,对象要用关键字new创建
注:1. java程序中,一般推荐,一个.java文件中只存放一个类
二、类和对象的实例化
用类类型创建对象的过程,就称为类的实例化。
// 创建类
class <class_name>{
field;//成员属性
method;//成员方法
}
// 实例化对象 <class_name> <对象名> = new <class_name>()
//例如:创建一个人的类
class Person {
//成员属性
int name;
int age;
//成员方法
public void eat() {
System.out.printf("吃饭");
}
}
三、类的成员
类的成员包括以下:字段/属性/成员属性,方法,代码块、内部类和接口等。
代码块功能是用来是初始化,和构造方法很类似,相比之下构造方法可以传参数,并且支持重载(可以有多个版本)代码块中只能做一些固定的初始化
类中创建的变量叫 类的属性/字段/成员变量 创建的方法叫做类的方法。
static关键字:(存放在方法区中有一个person类的一块内存)
- 修饰一个成员变量/属性 和对象无关,和类相关 无论这个类存在多少个对象,静态成员变量只存在一份;
- 类的属性对于静态成员变量,在普通方法/代码块中可以访问,静态方法/代码块也可以访问;
- 对于普通成员变量来说,普通方法/代码块中能访问,静态方法/代码块中不能访问
-
修饰一个方法 让方法脱离开对象**,和类有关** 和对象无关
被static 修饰的方法,里面不能有有this,因为this是指当前对象,一个方法/属性要不要加static?具体问题具体分析。 -
修饰代码块:静态代码块只能修饰静态成员变量/属性(new对象的时候,限制性代码块,在执行构造方法,和位置无关) 静态代码块只执行一次 ,只会在创建的所有对象之前执行;
4**. final:**被final修饰的叫常量,也属于对象,初始化不能被修改值,存放在堆上总结:被static所修饰后,就和对象无关,依赖于类,调用时使用类名.方法/字段
四、封装
**面向对象最重要的三大特性:“封装”、“继承”、“多态”。**还有一些其他的特性,例如:抽象、反射,组合;
封装:C语言中的函数可以理解成一种封装,让调用者不必太关注实现的细节,java中面向对象中的封装也类似,类的使用者不必太关注类实现的细节
封装是为了让类的调用者更方便
Java中 面向对象的封装是怎么体现的呢?
- 用privata修饰 所对应的是public,public 修饰的属性和方法,既能在类内部使用,也能在类的外部使用(既能给实现者使用,也能给调用者使用)
- private 修饰的属性和方法,通常情况下,只能在类的内部使用,类外不能使用;
- 当我么把属性加上private关键字修饰的时候,此时在类的外部无妨直接使用,但是可以在类的外部调用类的public 的方法,然后让public方法来使用privata变量。
若某个成员变量需要在类外调用,则可以写自己写get/set方法,也可以用快捷键自己生成get/set方法(自动生成的快捷键alt +insert)。
当我们提供了get和set方法的时候,就和public修饰差不多了,要求所有的属性都设为privata,但是不一定所有的属性都提供getter /setter方法,能不提供就不提供。
Java中静态常量、常量、成员属性在内存中的存储:
五、构造方法
类中存在一个特殊的方法,叫构造方法。
- 构造方法的名字和类名完全相同
- 构造方法没有返回值
- 构造方法new对象的同时被自动调用
构造方法是可以传参数的,传参数的过程和普通方法没什么区别
this 这个关键字,在java中,在类的内部表示当前这个对象的引用构造方法也能支持重载,重载的规则和普通方法相同
idea中可以自动生成构造方法:快捷键:alt + insert 或者 :右键 --》GenerateJava的类,如果用户没写构造方法,会自动生成,而且支持重载,构造方法可以调用构造方法:用关键字,例如this
构造方法如果设为pivate,就意味着这个类通过常规方法五方创建处对象。
六、认识代码
字段的初始化方式有:
- 就地初始化
- 使用构造方法初始化
- 使用代码块初始
七、补充说明
1.toString方法任何类的内部都有一个toString方法,这个方法默认的行为是得到这个类型的身份,我们可以手动修改toString的行为,让我们的对象按照需要的情况返回出合适的字符串。可以自己生成toString方法toString其实是一个Object这样的方法, Object是所有类的祖宗,所有的累都是直接或间接的“继承”自Object
2.匿名对象
//这样创建一个对象就是你们那个对象
new Person("caocao",19).show();//通过匿名对象调用方法
上一篇: unity网格合并的用法
下一篇: 总结:Java中的类和对象