Java书写面向对象_Java 面向对象

## 面向对象 ##

> **面向过程:当需要实现一个功能时,每个具体的步骤都得自己写,亲力亲为

> 面向对象:当需要实现一个功能时,不关心具体的步骤,找一个已经具有该功能的东西替我做事**

示例代码:

import java.util.Arrays;

public class a05_面向对象 {

public static void main(String[] args) {

int[] array01 = { 0,1,5,4,6};

// 使用两种不一样的方法来打印数组

// 使用面向过程

System.out.print("[");

for (int i = 0; i < array01.length; i++) {

if (i == array01.length - 1){

System.out.println(array01[i] + "]");

}else {

System.out.print(array01[i] + ", ");

}

}

System.out.println("-------------------------------------------");

// 使用面向对象

// 找一个JDK给我们提供好的类

// 里面有toString方法直接提供这个效果

System.out.println(Arrays.toString(array01));

}

}

![在这里插入图片描述][20200725113800410.png]

#### 1、介绍 ####

> a)面向过程强调的是步骤,面向对象强调的是对象

> b)面向对象三大基本特征:**封装、继承和多态**

#### 2、类和对象的关系 ####

> a)**类**:是一组相关**属性**和**行为**的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物

> b)**属性**(成员变量):就是该事物的状态信息 | **行为**(成员方法):就是该事务能够做什么

> c)类是对一类事物的描述,是抽象的 | 对象是一类事物的实例,是具体的

> d)类是对象的模板。对象是类的实体

> 例如下图,类就相当于设计图,对象相当于真正的手机

> ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDgzODU4OQ_size_16_color_FFFFFF_t_70]

> e)**注意事项**:

> 1.成员变量是直接定义在类当中,在方法外

> 2.成员方法不要写static关键字

> e)过程

> 1.导包:指出需要的类在什么位置

> `import 包名称.类名称`

> `import java.util.Arrays;`

> 对于和当前类属于同一个包的情况,可以省略到导包语句不写

> 2.创建

> 格式:`类名称 对象名 = new 类名称();`

> `Student stu = new Student();`

> 3.使用

> 使用成员变量:`对象名.成员变量名`

> 使用成员方法:`对象名.成员方法名(参数)`

> 4.**局部变量和成员变量的区别**

> ⚪**定义的位置**不一样

> 局部变量定义在方法内部

> 成员变量定义在方法外部,直接写在类当中

> ⚪**作用范围**不一样

> 局部变量只有在方法当中才可以用,出了方法就不能用了

> 成员变量则是在整个类都可以使用

> ⚪**默认值**不一样,

> 局部变量没有默认值得自己赋值

> 全局变量没有赋值的话会有默认值

> ⚪内存位置不一样

> 局部变量位于栈内存

> 成员变量位于堆内存

> ⚪生命周期不一样

> 局部变量随着方法进栈诞生,出栈消失

> 成员变量随着对象创建诞生,对象被垃圾回收而消失

> ⚪方法的参数也是局部变量

> 相关代码:

//a05_面向对象.java

public static void main(String[] args) {

// 导包

a05_面向对象01 stu = new a05_面向对象01();

// 使用成员变量

System.out.println("未赋值↓");

System.out.println(stu.name);

System.out.println(stu.age);

stu.age = 18;

stu.name = "jack";

System.out.println("赋值后↓");

System.out.println(stu.name);

System.out.println(stu.age);

// 使用成员方法

stu.eat();

stu.sleep();

stu.study();

}

//a05_面向对象01.java

public class a05_面向对象01 {

// 成员变量(全局变量)

String name;

int age;

// 成员方法

public void study(){

System.out.println("学习");

}

public void eat(){

System.out.println("吃饭");

}

public void sleep(){

System.out.println("睡觉");

}

}

![在这里插入图片描述][20200725184802403.png]

#### 3、使用对象类型作为方法参数####

内存变化过程

相关代码:

//a05_面向对象.java

public static void main(String[] args) {

a05_面向对象01 stu01 = new a05_面向对象01();

stu01.name = "lucy";

stu01.age = 18;

idea01(stu01);

}

public static void idea01(a05_面向对象01 parma) {

System.out.println(parma.name);

System.out.println(parma.age);

parma.study();

parma.sleep();

parma.eat();

}

//a05_面向对象01.java

public class a05_面向对象01 {

// 成员变量(全局变量)

String name;

int age;

// 成员方法

public void study(){

System.out.println("学习");

}

public void eat(){

System.out.println("吃饭");

}

public void sleep(){

System.out.println("睡觉");

}

}

![在这里插入图片描述][20200726115152402.png]

[20200725113800410.png]: /images/1613552077542.png

[watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDgzODU4OQ_size_16_color_FFFFFF_t_70]: /images/1613552064323.png

[20200725184802403.png]: /images/1613552052443.png

[20200726115152402.png]: /images/1613552040288.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值