欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java类和对象总结

程序员文章站 2022-07-13 22:23:04
...

一、类和对象的初步认识

  1. 面向对象:C++、JAVA
    面向对象就是用代码(类)来描述客观世界的事物的一种方式,一个类主要包含一个事物的属性和行为。
    面向对象注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来

  2. 面向过程:C语言
    面向过程注重的是过程,在整个过程中所涉及的行为,就是功能。

  3. 什么是类:类就是高配的结构体(结构体是自定义类型(自定义类型是基础类型的组合))。
    类中既包含了数据(属性/字段/成员变量),也包含了动作(方法)。

抽象:把具体事物的核心信息提取出来,并进行表示。结构体就是把现实生活中事物的抽象化。
类存在的意义:把客观事物进行一个抽象的表示,但与结构体相比,类的抽象能力更强一些要想使用类(类是自定义类型),还要把这个类型的变量创建出来,这个变量就成为“对象(object)/实例(instase)”

总结:

  1. 类 就是一个模板,对象 就是模板产生出来的实体
  2. 类用关键字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类的一块内存)

  1. 修饰一个成员变量/属性 和对象无关,和类相关 无论这个类存在多少个对象,静态成员变量只存在一份;
  • 类的属性对于静态成员变量,在普通方法/代码块中可以访问,静态方法/代码块也可以访问;
  • 对于普通成员变量来说,普通方法/代码块中能访问,静态方法/代码块中不能访问
  1. 修饰一个方法 让方法脱离开对象**,和类有关** 和对象无关
    被static 修饰的方法,里面不能有有this,因为this是指当前对象,一个方法/属性要不要加static?具体问题具体分析。

  2. 修饰代码块:静态代码块只能修饰静态成员变量/属性(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中静态常量、常量、成员属性在内存中的存储:
Java类和对象总结
五、构造方法
类中存在一个特殊的方法,叫构造方法。

  • 构造方法的名字和类名完全相同
  • 构造方法没有返回值
  • 构造方法new对象的同时被自动调用

构造方法是可以传参数的,传参数的过程和普通方法没什么区别

this 这个关键字,在java中,在类的内部表示当前这个对象的引用构造方法也能支持重载,重载的规则和普通方法相同

idea中可以自动生成构造方法:快捷键:alt + insert 或者 :右键 --》GenerateJava的类,如果用户没写构造方法,会自动生成,而且支持重载,构造方法可以调用构造方法:用关键字,例如this
构造方法如果设为pivate,就意味着这个类通过常规方法五方创建处对象。

六、认识代码
字段的初始化方式有:

  1. 就地初始化
  2. 使用构造方法初始化
  3. 使用代码块初始

七、补充说明
1.toString方法任何类的内部都有一个toString方法,这个方法默认的行为是得到这个类型的身份,我们可以手动修改toString的行为,让我们的对象按照需要的情况返回出合适的字符串。可以自己生成toString方法toString其实是一个Object这样的方法, Object是所有类的祖宗,所有的累都是直接或间接的“继承”自Object

2.匿名对象

//这样创建一个对象就是你们那个对象
new Person("caocao",19).show();//通过匿名对象调用方法