首页 > 代码库 > Java自学笔记(第五天)面向对象--char[]和String--封装--构造函数--this

Java自学笔记(第五天)面向对象--char[]和String--封装--构造函数--this

//面向过程的思想就是只有动词,面向对象的思想就是名词+动词

冰箱.打开

冰箱.存储

冰箱.关闭

//名词提炼法

//面向对象的三个特征:封装,继承,多态

(*)类和对象的关系

类:对事物的描述(属性,行为)(成员变量,成员方法)

对象:事物实体(值,具体做法)

/*

(*)(*)Java中没有string关键字,而String是字符串类

(*)(*)char[]和String互转:

*/

//对象.对象成员

//每个new都生成一个新对象,并在堆内存中分配空间

(*)成员变量和局部变量

成员变量作用于整个类中,局部变量作用于函数中,或者语句中。

成员变量在堆内存中,因为对象的存在,才在内存中存在。局部变量存在于栈内存中。

//匿名对象

使用方式一:当对象的成员变量或方法只调用一次时,可以用匿名对象来完成,这样写比较简化

使用方式二:可以将匿名对象作为实际参数进行传递----------如下图所示

 

(*)封装:指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处--将变化隔离,便于使用,提高重用性,提高安全性。

原则--将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。

//函数就是最小封装体,类也是封装,包也是封装,框架是封装。

//访问修饰符:private同类中可以访问,被private私有化的类成员不能被对象调用

(*)私有仅仅是封装的一种表现形式

(*)构造函数:new的过程就是调用类的构造函数,分配堆内存空间,给成员变量赋初始值,没有赋值就是默认值

//当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。

//当系统中定义构造函数时,系统不会默认一个空参数构造函数。

(*)new ,(Person p = new Person(10,"abc");)意思就是在堆内存中new一个新的Person类型空间,并把()中的参数值,赋于相对应的成员变量。()无参数就是赋默认值。

//构造函数只在new的时候运行一次

//构造代码块:给对象进行较统一格属性的初始化,优先于构造函数执行

(*)this-关键字:就是这个对象(实例),调用方法的对象(实例)。代表它所在函数所属对象的引用。

//构造函数间的相互调用用this,this()需在第一行

Java自学笔记(第五天)面向对象--char[]和String--封装--构造函数--this