黑马程序员—面向对象

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、二维数组。

其内存结构就在堆中建立a[]存储a[0][0]的首地址。

定义:格式1: int[][] arr= new int[3][2];

        格式2 int[][] arr= new int[3][];    默认初始化值null

       格式3int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};

获取长度:arr.length          arr[i].length

 

二、面向对象:找对象,建立对象,使用对象

三个特性:封装(encapsulation  继承(inheritance  多态(polymorphism

类与对象的关系:类是对现实生活中事物的描述,对象是这类事物,实实在在存在的个体。存放多个对象,称为实体

类型   类类型变量 = New car();    

定义类{                                                调用格式:对象.属性名=修改值;对象.行为;

   属性 →变量

  行为→方法、函数

}

成员变量作用整个类中→堆。局部变量作用于函数,for语句→栈(后进先出)

 

三、匿名对象: ①new car().num =  5;无意义

②new car.run();     匿名调用方法         ③shou(new car())   匿名对象可以作为实际参数进行传递;

 

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

作用:1.将变化隔开  2.便于使用  3.提高重用性   4. 提高安全性

public  公共           private私有  (权限修饰符;用于修饰类中的成员变量,成员函数,只有本类有效)

之所以对外提供访问方式,就是因为在访问方式中加入逻辑判断语句,对访问的数据进行操作,提高代码的健壮性。

 

五、构造函数:函数名与类名相同,不用定义返回值类型,不可以写return语句。

注:void是没有具体结果返回的返回值类型。

对象建立,调用与之对应的构造函数,进行对象初始化

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

构造函数可以重载。

构造函数与一般函数写法不同,直接构建调用,运行方式不同,构造函数一次并初始化,一般函数可以多次使用。

使用的时候:当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。

构建代码块:{

},初始化优先于构建函数执行。

多个class......包名须和主函数名相同执行。

 

六、this:就代表本类的对象。   this.name=name。建立对象,将name赋值给本类的name,

用于构造函数间调用:this();这语句须放在构建函数第一句,初始化原理,对于初始化,即使主函数赋值,在初始构建块的时候,也不会赋予。

 黑马程序员—面向对象_第1张图片

七、static;是一个修饰符,被修饰者可以被类名调用。存储方式在共享区(方法区或者说数据区),

1.随着类的加载而加载。                               

2.优生与对象存在。           注:不可以定义this、super等关键字

3.被所有对象共享。          注:静态方法只能访问静态成员

4.可以直接被类名调用。

优点:节省空间,可以直接被类名调用。

缺点:生命周期过长,方法访问出现局限性,主函数是静态的。

 

八、主函数内容

public:读函数访问权限最大。               static:函数随类的加载存在。

void: 没有具体的返回值 。                   main:不是关键字,能被JVM识别。

{String[] args} : 函数参数,参数类型是一个字符型数组       args可以被修改。

建立一个null的数组。JVM,在调用主函数时,传入的是New String [0];

主函数可以被重载

 

九、调用类。

set class path =. 工具路径。

在工具类中把构建函数私有化,使用此工具不能创建对象,只能类名调用。

将不能给用户使用的功能(将工具的功能分多个方法使用)私有化,静态才能类名调用。

十、静态块及单例设计模式

类下的static{}该块为静态快,为类进行初始化,优先于构建代码块给对象初始化,优先于构建函数给对应对象初始化;

设计模式:单例设计,类中只能建立一个对象。

单例①饿汉式:将对象私有化,然后私有构建函数就不能new,建立返回对象的方法

单例②懒汉式:在方法区建立s=null;然后调用方法时才建立对象,属于延时加载。

 

黑马程序员—面向对象_第2张图片

 

 

 

 

 

你可能感兴趣的:(黑马程序员—面向对象)