java基础知识--面向对象--成员变量和局部变量的区别

面向对象:

世间万物皆对象

用类的形式描述现实中的事物

功能=方法

属性=变量

大象放进冰箱   开门  关门  存大象

分析:

具体存在的事物:冰箱  大象

class 冰箱{

开门(){}

关门(){}

存储大象(大象 d){}

}

class 大象{

  

}

冰箱 a = new 冰箱();

大象 b = new 大象();

  1. 开门();
  1. 存储大象(b);
  1. 关门();

属性和方法都属于类的成员

属性:成员变量(写在类中)

方法:成员方法

局部变量(写在方法中)

自定义类:

事物:方法(事物具备的功能)

      属性(属于事物的特性)(属性是变量,可赋值,取值)

格式:

public class 类名{

定义属性

定义方法

}

定义属性:修饰符  数据类型 变量名 = 值;

定义方法:修饰符  返回值类型 方法名(参数列表){}

修饰符:表示的是权限

 

创建引用数据类型的格式:

数据类型 变量名 = new 数据类型 ();

 

实现引用类型步骤:

  1. 导入包(类在同一个文件夹不需要导包)
  2. 创建引用类型的变量
  3. 变量.类型中的功能

new phone内存出现哪些内容

  1. jvm在堆内存中,开辟空间存储phone
  2. 类中的属性跟随容器进入到堆内存
  3. 属性进入堆内存,赋默认值
  4. jvm内存地址,传递到引用类型p
  5. 变量p保存的就是内存中的地址
  6. p.属性,就是堆内存中的变量

全局变量(成员变量)与局部变量的区别:

 

定义位置

作用域

默认值

内存位置

生命周期

成员变量

类中,方法外

整个类

有自己的默认值

跟随对象进入堆内存

跟随对象进入堆存储,内存等待jvm清理,生命相对较长

局部变量

方法内,语句中

方法内,语句中

没有默认值,不赋值不能使用

跟随方法进入栈内存

跟随方法,进入栈,方法出栈,生命周期较短

ArratList集合的使用

步骤:

  1. 导包
  2. 创建引用类型的变量

数据类型<> 变量名 = new 数据类型<> ();

<集合存储的数据类型>

集合存储的数据类型:要将数据存储到集合的容器中

创建集合引用变量的时候,必须指定好,存储的类型是什么

ArrayList<String>  array = new ArrayList<String>();

  1. 变量名.方法

集合只存储引用类型,不存储基本类型

基本数据类型

字节数

对应的引用数据类型表达式

byte

1

Byte

short

2

Short

int

4

Integer

long

8

Long

float

4

Float

double

8

Double

char

2

Character

boolean

1

Boolean

ArrayList集合方法;

  1. add(参数) 向集合中添加参数,数据存储进去

方法中的存储类型,定义集合对象时候的类型一致

  1. get(int index) 取出集合中的元素,get方法的参数,写入索引

返回类型:获取元素的类型

  1. size() 返回集合的长度,集合中存储元素的个数

返回类型:int

  1. add(int index,存储的元素) 将元素加到指定索引处
  2. set(int index,修改后的元素) 将指定索引处的元素进行修改

创建对象的格式

类名  对象名 = new 类名();

Car    c     = new Car();

栈:运行方法   main()方法压栈

堆:存储容器   数组,对象

对象在堆内创建后,类的成员变量跟随对象进入到堆内存中,赋默认值。

栈:

 

run()

syso("在跑"+color+count);

 

main()

Car c = new Car();

c.color="red";

c.count=5;

c.run();

 

堆;

 

new Car()

String color;

int count;

 

run()是c调用。run()弹栈  main()弹栈

方法参数类型;

基本数据类型:八个

引用数据类型:传递的是内存地址

栈:       出栈死亡

 

private static void function(person p) {

    p.name="wj";

}

 

main

person p =new person();

    p.name="zbm";

    System.out.println(p.name);

    function(p);

    System.out.println(p.name);

 

堆;

new Person()

String name;

name=null

name=zbm

name=wj

栈:

 

public void speak() {

    String name="wj";

    int age=10;

System.out.println(this.name+this.age);

  }

 

main

person p =new person();

    p.name="zbm";

    p.age=20;

    p.speak();

 

堆:

new person()

String name = "zbm";

int age = 20;

  1. this:本类的对象引用
  2. 哪个对象调用的,this就表示哪个对象
  3. p调用speak();调用者是p对象
  4. speak()中的this表示的是调用者
  5. this就是对象p

this:区分成员变量和局部变量的同名情况

方法中想访问成员变量,写this。

封装:方法 类

好处:

  1. 隐藏实现细节,对外提供可以访问的方式
  2. 提高代码复用
  3. 提高安全性

private:权限修饰

对私有变量提供公共的访问方式:写法

set()赋值

get()取值

public void setAge(int age) {

       this.age=age;

   }

public int getAge() {

       return age;

  }

总结:

类中不需要对外提供的内容都私有化,包括属性和方法

属性私有化,并提供get/set方法对其进行访问

注意:私有仅仅是封装的体现形式而已

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值