Java类和对象总结

一、类和对象的初步认识

  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中静态常量、常量、成员属性在内存中的存储:
在这里插入图片描述
五、构造方法
类中存在一个特殊的方法,叫构造方法。

  • 构造方法的名字和类名完全相同
  • 构造方法没有返回值
  • 构造方法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();//通过匿名对象调用方法
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值