类和对象01

一.类与对象的基本简述

类是具备某些共同特征的实体的集合。对象是类的一个实例。类是抽象的集体,而对象是集体中一个具体的实物。

类:​​​​​​是一个抽象的集合,是具备某些共同特征的实体的集合,在类中,我们可以定义属性和方法

对象:是类中的一个个性展示,具备自己独立的属性。比如:在学科类中,我们可以创造很多的对象(如语文,数学,英语),他们属于学科这个大类,但是又具备自己特有的特点。
 

二.类与对象的创建

基本格式:

具体案例:

在类中定义属性和方法

类是无法直接使用的,必须要创建对象后,才能使用,具体又两种格式:
1)格式一:声明并实例化对象
                  类名称 对象名称 = new 类名称 () ;

2)格式二:先声明对象,然后实例化对象:
        类名称 对象名称 = null ;
        对象名称 = new 类名称 () ;


 三.类的使用

当一个实例化对象产生之后,可以按照如下的方式进行类的操作: 

对象.属性:表示调用类之中的属性; 
对象.方法():表示调用类之中的方法。

讲到类和对象,封装,继承,多态 这三个概念是无法跳过的

封装,继承,多态

一.封装

封装从字面上来理解就是包装的意思,目的就是保护数据安全,实现信息隐藏。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节,但可以通过该对象对外的提供的接口来访问该对象。

 对于封装而言,一个对象它所封装的是自己的属性和方法, 使用封装有三大好处:

1、良好的封装能够减少耦合。

2、类内部的结构可以自由修改。

3、可以对成员进行更精确的控制。

4、隐藏信息,实现细节。

封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果不想被外界方法,我们大可不必提供方法给外界访问。

 通过setter 和getter 是该对象对外开发的接口,封装可以使我们容易地修改类的内部实现,而无需修改使用了该类的客户代码。就可以对成员变量进行更精确的控制

 在封装时,我们就实现了我们传入的年龄必须是在0-120岁,而不需要在外部实现时再重新判断年龄是否符合条件,从而实现了对成员变量的精确控制。

封装时的权限控制符区别如下:

     private:成员变量和方法只能在类内被访问,具有类可见性.

     默认:成员变量和方法只能被同一个包里的类访问,具有包可见性.

     protected:可以被同一个包中的类访问,被同一个项目中不同包中的子类访问.

      public:可以被同一个项目中所有类访问,具有项目可见性,这是最大的访问权限.

二.继承

  继承是使用在已存在的类的基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。举例,比如人类和消防员,人类可以有很多行为和属性,比如衣食住行,传宗接代,消防员显然是具备这些基础的,但是消防员是更个性化的个体,在人类(父类)的基础上,消防员还具备了灭火救灾等具体功能,所以继承可以使得消防员(子类)直接具备人类的基本生存技能的基础上,再实现自己子类特有的功能,而不需要再写代码来实现。
java中只支持单继承,即每个类只能有一个父类.

所有的java类都直接或间的接的继承了java.lang.long.Object类.Object类是所有java类的祖先.

在java中,继承通过extends关键字来实现,使用继承时需要记住三句话:

1、子类拥有父类非private的属性和方法。(补充:private是私有变量,被private的变量,只有在本类中才能被使用,而其他类要想使用只能通过super()调用)

2、子类可以拥有自己属性和方法,即子类可以对父类进行扩展。

3、子类可以用自己的方式实现父类的方法。

构造器:无参和带参构造方法

除了那些private的外还有一样是子类继承少不了的---构造器。对于构造器而言,它只能够被调用,而不能被继承。 调用父类的构造方法我们使用super()。
什么是构造器

构造器通常也叫构造方法、构造函数,构造器在每个项目中几乎无处不在。当你new一个对象时,系统就会自动调用构造方法

无参构造方法:

 带参构造方法:

默认构造器
如果没有定义构造器,则系统会默认一个无参构造器,这就是为什么你定义了一个对象,比如 Student,没有定义任何构造器却可以new这个对象,比如 new Student() 。如果自定义了构造器,则会覆盖默认构造器。

如何禁止对象被外部创建
一些特殊需求,不希望定义的对象被外部创建(典型的就是单例了),那直接将构造器的修饰符改为 private 即可。这样就不能在外部通过new来创建这个对象了。

构造器重载

重载可以简单理解为:同个方法名,不同的参数列表。

三.多态

待更新.....

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值