JAVA基础--类与对象

1.面对对象

面对对象是一种程序设计的思想,他把复杂的事情简单化,面对对象最重要的两个概念便是:类与对象

2.类

类,就像是构造对象的一份蓝图,就好像一部手机生产之前他是有一个设计参数图,这就相当于一个类,然后通过工厂生产出来,变成了一款可以摸得着的实际物体,这个过程在程序中便是相当于由这个类构造出来了一个对象,对象的过程为创建类的实例.

每个类里面都会有一份属于他的参数,因为是他的参数,所以他会把这些参数给包起来,也就是封装,里面的东西由他来决定是否给外界使用,每一个类中参数的分为数据和操纵这些数据的方法,对象中的数据在类中也称作为实例域,每一个类在创建后有一个实例对象后,他都会有一分实例域值,这些实例域值得集合就是这个类的当前状态,而通过对象可以操作改变这些值

一般而言,在为了体现类的封装性,这个类的实例域值是不能够轻易让其他类的实例对象通过方法来改变他的实例域值,只能通过当前对象或类里面对他的实例域进行使用,封装就好像把类包装成了一个黑盒子,外界是看不到它里面的属性.这样做的优点为代码提供了重用性和可靠性.

2-1:对象

对象的三个主要特征:

                              1.对象的行为:

                               2.对象的状态

                               3.对象的标识

1.对象的行为:也就是对象能够对类进行的操作,使用类里面的哪些方法

2.对象的状态:对象的状态是会改变的,但是他的改变是基于类中的方法调用改变,否则说明这个类的封装性遭到了破坏

3.:对象的标识:每个对象都是有着唯一的一个标识,每个对象的标识是永远不同的.

2-2类与类的关系

1.依赖:就是一个类的方法会操纵另一个类的对象,他们之间就存在依赖关系,就好比充电电池和充电器,充电电池通过充电器来充电,  有一种use a 的意思

2.聚合:整体和个体/部分之间的关系;,聚合关系的两个类处于不同的层次上,一个是整体,一个是个体/部分;在聚合关系中,代表个体/部分的对象有可能会被多个代表整体的对象所共享;

3.继承:A继承B,B可以使用A的非私有方法和属性,A和的关系 A is B

4.关联: 类与类之间的联接,使一个类知道另一个类的属性和方法。关联可以是双向,也可以是单向的。一般使用成员变量来实现,和依赖对比,关联提供了属性和方法,而依赖一般是将被依赖类的对象传给需要的类(依赖类)。

 

3.自定义类的组成结构

3-1.实例域值(类的属性)

在定义一个类的时候,一般来说,先简单想好这个类中需要哪些属性,这些属性是什么类型的:

1.首先区别静态与非静态:

静态的的实例域值一般是通过 static 这个关键词来定义的,由这个关键词修饰的实例域值的特点是:

时间上的特点:他是随着类的实例化就创建的,他比类的构造方法还要创建的早.

生命周期:他是随着类的创建而存在的,随着类的结束而销毁,他是属于类的,在这个类没有创建对象的时候也是可以调用的,类的对象也可以调用

内存:创建在静态域中,只在类生成的时候创建一次并初始化,不会因为类的多次实例化而反复创建,他是能被类的对象共享的.

非静态的实例域:分为成员变量和局部变量

1-1..他一般取决于他的位置,如果是成员变量的话是对着他的对象存在而存在,销毁而销毁,局部变量的话是随着他所在的方法中存在而存在,调用方法结束后便销毁,

1-2.成员变量是随着对象的创建在堆内的,而成员变量是创建在方法栈中的

1-3.成员变量的话他可以不用赋初始值并且也可以使用,因为他的对象会通过构造函数给他默认赋值,但是局部变量的话是一定要赋初始值的,不能编译的时候会报错,并且不能够使用

2.常量与变量

常量创建初始化后便不可以再赋值了,他被创建在常量池中,不许再更改.关键词final

ps:被final修饰的方法不能被重写,修饰的类不能被继承,

变量一般常见在堆中,并且可以修改.

 

3-2.构造器(构造方法)

构造方法的作用简要概括就是对类中的实例域值进行初始化,也就是对类的成员变量进行初始化

他的创建时间是每次类被实例化的时候就会调用一次,他的创建时候仅次于静态成员,

一个类中是可以有多个构造方法的,也就是构造方法的重载,但是他是没有返回值得,并且名字要和类一样

一般定义一个类如果在没有写构造方法的话,系统会默认给他写一个无参构造方法,但是如果自己写了一个有参构造方法的话,那么最好自己给这个类写一个无参构造.

在构造方法中存在两种参数,隐式/显式参数

例如一个类

class test

{

String a ;

public test(String a)

{

       (this.)num = a;

}

}

this就是隐式参数,而String a 就是显式参数

在类的构造函数中可以通过this来调用这个类中的其他方法或构造函数,这个this一般谁调用他,那他就是谁,在这个当中就是test实例化的对象调用了他

 

3-3方法

被分为静态与非静态:具体和上面的一样,唯一的需要添加的时:

静态方法中只能调用静态成员,不能调用非静态成员,除非实例化出一个你需要调用你的静态成员所在的那个类,然后再调用

方法在使用的过程中会使用重载,也就是方法名字一样,但是方法里面的参数是不一样的,可以是个数不一样,类型不一样,排序不一样,除此之外的都不能算作为方法的重载

方法中参数使用的注意事项:

1.一个方法不能够改变基本类型的参数

2.一个方法可以改变一个对象参数的状态

3.一个方法不能让对象参数引用另一个新的对象

 

类也可以按代码块来分:

1.静态代码块:class创建的时候执行一次,最先加载的代码块

2.构造块:加载速度优先于构造方法,如果一个类中有多个构造方法,那么创建对象的时候,这多个构造方法中都会有这个构造代码块的东西,一般来说,会把每个构造方法中的相同代码放到构造块中

3.局部代码方块:就是普通的代码

类的设计技巧

1.一定要保证数据私有

2.一定要对数据初始化

3.不要在类中使用过多的类型

4.不是所有的域都需要get和set方法

5.将职责过多的类进行分解

6.类和方法名最好能够让人一眼能看出他的功能

7.优先使用不可以变的类

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值