java面向对象学习笔记一

面向对象的三个主要特征是

封装性:内部的操作对外部不可见,当内部的操作都不可直接使用的时候才安全

继承性:在已有结构的基础上进行功能的扩充

多态性:是在继承性的基础上扩充而来的概念,指的是类型的转换处理。

面向对象的开发有三个步骤:

OOA:分析

OOD:设计

OOP:编程

类与对象:

类是对某一类事物的共性的抽象概念

对象描述的是一个具体的产物。

类中一般由两部分组成:成员属性和操作方法。

String是引用数据类型,默认值是null

类也是引用数据类型。

内存分为:

堆内存:保存的是对象的具体信息,在程序之中堆内存空间的开辟是通过new来完成的
栈内存:保存堆内存的地址,即通过地址找到堆内存,然后找到对象信息
引用传递:同一块堆内存可以被不同的栈内存所指向,也可以更换指向

引用传递有时候会有垃圾空间的产生,垃圾空间指的是没有任何栈内存指向的堆内存

所有的垃圾都会被GC(Garbage Collector垃圾收集器)回收并释放,但是垃圾过多会影响GC的处理性能,从而降低程序的整体性能

一个栈内存只能保存一个堆内存地址,如果发生更改,则之前的数据则会彻底消失。

属性封装:

利用private关键字对属性进行封装处理。属性封装之后外部将不能直接访问,即外部不可见。但是对类的内部是可见的。如果要访问封装的属性,则需要:

【setter,getter】设置或获取属性可以使用getXXX(),setXXX()方法,如public void setName(String n)
类中的属性大多要用private进行封装,并提供相应的getter,setter方法

构造方法:

使用类传统一般有两步:1对象实例化 2 通过setter对类中的属性设置内容。

但如果属性比较多,则比较繁琐,为了解决对象初始化提供了构造方法:通过构造方法来实现实例化对象中的属性初始化处理。

即只有在关键字new的时候使用构造方法,构造方法的定义:

1、构造方法名称必须与类名称保存一致

2、构造方法不允许设置返回值类型,即没有返回值定义(为了与普通方法区分)

3、构造方法是在使用new进行实例化对象的时候自动调用的

java里考虑到程序的完整性,所有的类都会提供构造方法,如果没有程序里没写构造方法,那么在程序编译的时候会自动创建一个无参的,什么也不做的构造方法。

构造方法可以重载,一般按照参数的多少进行排序。

this的使用

this.属性

this()调用构造方法,this.普通方法()

注意 this()只允许放在构造方法的首行。

构造方法相互调用时必须保留出口。

简单java类

是可以描述某一类信息的程序类,没有复杂的逻辑操作,只作为信息存储的媒介存在。其核心的开发结构为:

类名称必须有意义,可以明确的描述某一类事物;
类中的所有属性用private进行封装,并提供getter,setter 方法;
类中可以提供有无数个构造方法,但必须保留有无参构造;
类中不允许出现任何输出语句,所有内容的获取必须返回;
【非必须】可以提供有一个获取对象详细信息的方法,暂时将方法定义为getInfo();

static:

定义个公共属性,全局数据区,对于其访问需要注意:

虽然可以使用对象来访问,但最好是通过所有对象的最高代表(类)来访问,所以static可以用类名称来调用。

static虽然定义在类中,但并不受到类实例化对象的控制。可以在没有实例化对象的时候使用。

在以后类设计时,首选的是非static属性。考虑到公共信息存储的时候才用static

static方法有两种static方法和非static方法。这两个方法之间的区别:

static方法只允许调用static属性或者方法

非static方法允许调用static属性或者方法

static属性或者方法都不是在编程之初需要考虑的内容,只有在回避实例化调用并且存放公共属性的时候才会考虑使用。

代码块

:普通代码块、构造块、静态块、同步代码块(多线程才会用的)

构造块定义在在类中,它会优于构造方法执行,并且每一次实例化的时候都会调用构造块。

静态代码块是用static定义的,它会优于构造块执行,并且不管有多少实例化对象只会执行一次,它主要是为了类中的静态属性初始化

静态代码块在主类中时:会优选于主方法执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值