面向对象、参数传递

面向对象

面向对象是基于面向过程

面向对象开发 就是不断的创建对象,使用对象,指挥对象做事情。 面向对象设计 其实就是在管理和维护对象之间的关系。 面向对象特征 封装(encapsulation) 继承(inheritance) 多态(polymorphism)

类与事物的关系:
        事物:是能够描述现实世界中真实存在的泛指的东西

        类:是能够描述一组事物的属性和行为的集合!  Java中,最基本的单元是类:class

 

类和对象:
            类:一组事物的属性和行为的集合!                学生类 Student
                    对应的真实存在事物(泛指)                  学生事物
            对象:    描述的应该真实事物中的具体的!     小明(具体个体)

类的定义
        现实世界的事物 属性 人的身高,体重等 行为 人可以学习,吃饭等
       Java中用class描述事物也是如此 成员变量 就是事物的属性 成员方法 就是事物的行为 定义类其实就是定义类的成员(成员变量和成员方法)

代码实现:

类名 对象名 = new 类名();
对象名.成员变量
对象名.成员方法

String[] args

String[]args是专门用来接收命令行参数的

在后台编译完.java文件生成.class文件,需要使用命令:java.exe去运行.class文件,这时候可以在后面加上参数

比如 java Test  Hello World

 JVM在调用main方法之前,先将Hello World这个字符以"空格"的方式分割,然后存储在String数组中

演示:

public class test {
    public static void main(String[] args) {
        for(int x = 0 ; x < args.length ; x++){
            System.out.println(args[x]);
        }

    }
}

局部变量和成员变量

   1)代码的书写位置不同
        局部变量:在方法定义中或者是方法声明上的变量
        成员变量:类中方法外
    2)内存中的位置不同
        局部变量:在栈内存中
        成员变量:在堆内存中
        
    3)生命周期不同
        局部变量:随着方法调用而存在,随着方法的调用结束而消失!(使用完毕,立即消失了)
        成员变量:随着类的加载而存在,随着类的加载完毕,等待垃圾回收器自动回收而消失!
                            (对象创建完毕,对象可能被继续使用,所以不会立即消失!)
                            
    4)初始化不同:
        局部变量:定义的时候,使用前必须初始化; 要么就是直接初始化,不能没有初始化值!
        成员变量:随着类的加载而存在,存在系统默认初始化,可以不直接赋值! 也可以赋值

引用类型作为参数传递

基本类型作为形式参数传递,形式参数的改变不会影响实际参数!
引用类型在作为参数传递,形式参数的改变会直接影响实际参数!(除了String字符串之外,字符串是常量)
                数组,类,接口
基本数据类型作为参数传递

public class Test {
    int num = 10;
    public  void method(int num){//基本类型作为参数传递
        num+=20;
    }
}
class TestDemo{
    public static void main(String[] args) {
        Test t = new Test();
        t.method(t.num);//传入成员变量
        System.out.println(t.num);
    }
}

没有改变成员变量的值

引用类型作为参数传递

public class Test {
    public static void main(String[] args) {
        int[] arr = {10,21,31,11,20};
        method(arr);
        System.out.println(arr[0]);
    }
    public static  void method(int[] arr){
        arr[0]=20;
    }
}

数组元素被改变了

匿名对象

没有名字的对象

格式:new  类名();

特点:

  1. 使用完毕立即被回收,节省内存空间
  2. 可作为参数传递
class Student{
    public void study(){
        System.out.println("学生喜欢学习");
    }
}
class StudentDemo{
    public void method(Student s){
        s.study();
    }
}
public class Test {
    public static void main(String[] args) {
        new StudentDemo().method(new Student());//作为参数传递
    }
}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值