美文网首页
面向对象(上)Part2

面向对象(上)Part2

作者: 人生如戏丢雷楼目 | 来源:发表于2021-05-24 20:53 被阅读0次

属性(成员变量)和局部变量

class User{
//属性,直接定义在类的一对{}内
String name;
int age;
//局部变量:定义在方法内、方法形参、代码块内、构造方法形参、//构造器内部的变量
public void learn(String type){//方法括号内的叫做形参
System.out.println("我们爱上"+type+"课")
}
public void eat(){
String name="jj";//定义在方法内部也是形参 局部变量
}
}

根据上面的例子发现

局部变量和属性的特点

相同点

  1. 都有各自的作用域

  2. 格式都是 数据类型 变量名 = 值

  3. 先声明,后使用

    不同点:

    1. 在类中声明的位置不同

      属性直接定义在类中

      局部变量定义的范围是在方法中,构造方法内部,代码块(函数内部)范围比属性要小

    2. 属性声明时可以使用权限修饰符(定义权限) 体现封装性

      private String 缺省 protected

      private int age;
      

      而局部变量禁止使用修饰符

    3. 关于默认初始化值的不同

      属性可以有默认初始化值

      整型:byte int short short 0

      浮点型 double float 0.0

      字符型:char 0

      布尔型:boolean false

      引用数据类型:类 数组 接口 String : null

      局部变量没有初始化值

补充:几个概念的使用说明

  • 属性 = 成员变量=field=域、字段
  • 方法 =成员方法 = 函数=mehtod
  • 创建类的对象 = 类的实例化=实例化类

万事万物皆对象

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

对象:对象是实际存在的该类事物的每个个体,因而被称为实例

理解万事万物皆对象:

将功能、结构封装到类中,通过类的实例化,调用类的功能结构

涉及到前端html后端sql语言,在java层面都定义为对象


方法重载 overload

重载:类中允许多个同名方法,返回值类型相同,前提是必须参数列表不同(顺序,数据类型,参数类型)

在对象调用方法时,如何确定调用的是哪个方法

1:先看方法名

2:由于方法的重载,看完方法名再看参数列表

public class User{
//在同一个类中,方法名相同,返回类型相同,参数列表不同,重载
public void shit(){

}
public void shit(String n , int s){

}
    //返回值类型不同,报错
public int shit(String s){
    return 1;
}
}

方法参数的值传递机制

  • 方法:必须由其所在类或对象调用才有实际的意义,方法含有参数

    1. 形参:方法声明时的参数

    2. 实参:方法调用时实际传给形参的实际值

  • java实参值如何传入方法呢?

    java方法参数传递方式只有一种:值传递

    1:形参是基本数据类型时:实参的值是通过“数据值”传递

    2:形参是引用数据类型时:实参的值是通过“地址值”传递

class N1{
//值的传递并不会改变其他值
n=20;
m=n
syso(m,n);//20  20
n=21;
syso(m,n)//20 21
Order o1 = new Order();
o1.num=12;
//这里指的是他们的地址值相同
//而不是他们的值相同,只有两者中用谁改变了地址值,两者都会同时改变
Order o2 = o1;

}

基本数据类型的值传递

值传递2.png 值传递3.png

以上例子说明如果实参是基本数据类型,实参赋给形参的是实参真实存储的数据值

引用数据类型的值传递

1:给对象中的值赋值

值传递5.png 值传递 6.png 值传递7.png
值传递8.png

如果参数是引用数据类型,实参赋予给形参的是变量保存的地址值

相关文章

  • 面向对象(上)Part2

    属性(成员变量)和局部变量 根据上面的例子发现 局部变量和属性的特点 相同点 都有各自的作用域 格式都是 数据类型...

  • Boolan/C++面向对象高级编程 part2

    C++面向对象高级编程 part2 @(boolan C++)[C++]2017-10-22 14:17:56...

  • 面向对象(未完成)

    面向对象 标签(空格分隔): 面向对象 第一章:面向对象(上) 什么叫面向对象 面向过程、面向对象、两者区别 构造...

  • 面向对象(上)

    面向对象与面向过程 现实生活中存在着各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现...

  • 面向对象(上)

    属性 = 成员变量 = field = 域、字段 方法 = 成员方法 = 函数 = method 创建类的对象 ...

  • 面向对象(上)

    基本概念 成员变量、构造器、方法的构造顺序随意,不会造成不同的影响 带static的方法不能访问非static的方...

  • 面向对象(上)

    1.类和对象的使用: 如果创建了一个类的多个对象,那么每个对象都拥有独立的类的属性(非static的)意味着我们修...

  • 面向对象上

    面向对象简介• Python是一门面向对象的编程语言• 所谓面向对象的语言,简单理解就是语言中的所有操作都是通过对...

  • 面向对象上

    面向对象上 两种思想:面向对象 面向过程 案例:面向过程:强调行为,函数最小单位,考虑怎么做 面向对象三大特征:封...

  • Java基础03面向对象

    Java 基础02Java编程基础 面向对象上 面向对象的概述 面向对象的概述:面向对象是一种符号人类思维习惯的编...

网友评论

      本文标题:面向对象(上)Part2

      本文链接:https://www.haomeiwen.com/subject/lslfsltx.html