java编程思想--第二章(一切皆对象)

一、面向对象和面向过程:

  面向过程:面向的是功能行为,

 面向对象: 面向的是对象的所有动作。

 

二、java语言的基本元素:类和对象

类是对一类事物描述,是抽象的、概念上的定义

对象是实际存在的该类事物的每个个体,因而也称实例(instance)。

三、类的成员

  1. 属 性:对应类中的成员变量
  2. 行 为:对应类中的成员方法

在方法体外,类体内声明的变量称为成员变量。 在方法体内部声明的变量称为局部变量。

注意:二者在初始化值方面的异同:          同:都有生命周期                异:局部变量除形参外,需显式初始化。

  1. 成员变量:

成员变量定义在类中,在整个类中都可以被访问。 成员变量分为类成员变量和实例成员变量,实例变量存在于对象所在的堆内存中。 成员变量有默认初始化值。 成员变量的权限修饰符可以根据需要,选择任意一个

  1. 局部变量:

局部变量只定义在局部范围内,如:方法内,代码块内等。 局部变量存在于栈内存中。 作用的范围结束,变量空间会自动释放。 局部变量没有默认初始化值,每次必须显式初始化。 局部变量声明时不指定权限修饰符

  1. 方法

修饰符  返回值类型  方法名 ( 参数列表) {        方法体语句; } 说明: 修饰符:public, private, protected等。     返回值类型:return语句传递返回值。没有返回值:void。 举例:

四、对象的创建和引用

  1. 使用new +构造器创建一个新的对象;
  2. 使用“对象名.对象成员”的方式访问对象成员(包括属性和方法);

1、用引用操作对象。 (string st= “”absc“”) 就是说你操作st 就行了。--------值传递和引用传递@1

2、对象存储位置:

  寄存器:访问速度最快,处理器内部,数量有限,不可控(不知啥意思,后期补)

  栈 :通过栈针移动操作内存大小,栈针上移释放内存,下移 分配内存,生命周期明确

  堆:编译器动态分配内存,new的时候分配

  常量存储:rom中,不变的数据

(上面的在程序中放,下面的是在介质或者媒介中放着)

  非ram存储:流和持久化对象

  • 类的访问机制: 在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外:static方法访问非static,编译不通过。) 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员

3、java基本类型

boolean char byte short int long float double 

               16     8      16    32   64   32      64  

高精度BigInteger和BigDecimal  任意整数和任意定点数 

 

 4、对象作用域,由你创建的花括号位置决定,new的对象不算在内

 

5、类,字段,方法。

访问权限+class+命名   

 

类的两种类型元素:数据成员(有时也叫“字段”)以及成员函数(通常叫“方法”)

方法,参数和返回值。

先看看方法的基本组成部分:名称,参数,返回值,方法体

ReturnType methodName( Argument list){

Method body

}

 

@1 来解释下值传递和引用传递:

值传递:

方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的是原始值的一个copy,此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。


引用传递:

也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,函数接收的是原始值的内存地址;
在方法执行中,形参和实参内容相同,指向同一块内存地址,方法执行中对引用的操作将会影响到实际对象

@2 基本类型在哪放着:

基本类型的数据,是引用数据类型,则存储在堆中,若是基本类型,则在栈中


注意:一:在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有效的原因
      在方法中声明的变量可以是基本类型的变量,也可以是引用类型的变量。
         (1)当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在JAVA虚拟机
         (2)当声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在JAVA虚拟机的栈中,该变量所指向的对象是放在类存中的。
   二:在类中声明的变量是成员变量,也叫全局变量,放在堆中的(因为全局变量不会随着某个方法执行结束而销毁)。
       同样在类中声明的变量即可是基本类型的变量 也可是引用类型的变量
       (1)当声明的是基本类型的变量其变量名及其值放在内存中的
       (2)引用类型时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。引用变量名和对应的对象仍然存储在相应的

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章