javaSE(从0开始)day07

目录

面向对象:

         Java 面向对象编程(OOP)是一种编程范式,它将数据(属性)和操作数据的方法(行为)封装在称为 “对象” 的实体中。以下是 Java OOP 的核心概念和思想:

一、方法:

  1、方法的定义:

2、方法的调用:

3.方法的重载:

4、动态参数

5、值传递和引用传递

二、类的定义:

1、类:class 关键字:

2、类属性:

3、类方法:

4、类的定义:

5、使用类:


面向对象:

    Java 面向对象编程(OOP)是一种编程范式,它将数据(属性)和操作数据的方法(行为)封装在称为 “对象” 的实体中。以下是 Java OOP 的核心概念和思想:

一、方法:

      方法“一词来源于日常生活中用语,意思是”指为获得某种东西或达到某种目的而采取的手段与行为方式“。在编程语言中,”方法“有时也被称为”函数“,其含义主要是”实现编程中某个具体功能的办法或方式,是一系列步骤的总结“。

       方法是若干”代码语句片段”的集合,它们完成一个”具体的功能“,并且设置一个”直观易懂“的名字,方便后期在程序中去”使用(调用)

  1、方法的定义:

修饰符  返画值类型  方法名(参数1..-参数n){
   方法体
   }

    修饰符:public static 

    返回值:任意,无返回值-void

    方法名:见名知意,小驼峰命名

    参数项:0-n个参数,每个参该用逗号分隔,参数类型 参数名;

    方法体:n行代码,如果方法右返回值,return给返回值,return 给返回值

2、方法的调用:

      方法定义的位置:类内部,方法的外面 方法执行次数一致, 方法调用完成后到原调用用 方法不调用不执行

package com.yuan;

import java.util.Arrays;
import java.util.Scanner;

public class Test1 {
    public static void main(String[] args) {

        //无返回值调用
        System.out.println("111111111");
//        sum1();
        add(10, 45);
        //有返回值调用
        //赋值调用: 数据类型 变量名=方法名()--推荐
        // String str=sum2();
         // System.out.println(str);

         //测试调用://System.out.println(sum());
        //有参有返回值  使用赋值调用
        String str2= test( "所庆娜", 18);
        System.out.println(str2);
    }

    //无返回值
    public static void sum1() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int a = sc.nextInt();
        System.out.println("请输入一个整数");
        int b = sc.nextInt();
        int c = a + b;
        System.out.println(c);
    }

    public static void add(int a, int b) {
        int sum = a + b;
        System.out.println("add 方法参数求和" + sum);
    }

    //有返回值
    //无参数,有返回值
    public static String sum2() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数组的长度");
        int[] arr = new int[sc.nextInt()];
        int add = 0;
        for (int i = 0; i < arr.length; i++) {
            System.out.println("清输入第" + (i + 1) + "个数");
            arr[i] = sc.nextInt();
            add += arr[i];
        }
        return Arrays.toString(arr) + "和为" + add;
    }

    //有参数,有返回信
    public static String test(String name, int age) {
        if (age >= 18) {
            return name + "已经成年";

        } else {
            return name + "未成年";

        }
    }
}

3.方法的重载:

        在一个类中,我们可以定义多个方法。如果有一系列方法,它们的功能都是类似的,只有参数有所不同,JavaOOP的语法允许把这一组方法名定义为同名方法。例如,在Hello类中,定义多个hello()方法:

public class Test3 {
    public static void main(String[] args) {

        //方法的重载
        int[] arr={1,2,3,4,5};
        int[] arr1=copyOfRange(arr,2);
        int[] arr2=copyOfRange(arr,2,4);
        System.out.println(Arrays.toString(arr1));
        System.out.println(Arrays.toString(arr2));
    }
    public static int[] copyOfRange(int[] original,int from){
      return copyOfRange(original,from,original.length);
    }
    public static int[] copyOfRange(int[] original,int from,int to){
        int[] arr=new int[to-from+1];
        for (int i = from,j=0; i <=to ;i++,j++) {
            arr[j]=original[i];
        }
        return arr;
    }
}

4、动态参数

    (1)一个方法最多只能有一个动态参数

    (2)动态参数放到末尾

    (3)动态参数可以作为数组使用

    (4)方法调用时,方法名参数名必须保持一致

 public static void main(String[] args) {
        int a1=10;
        int b1=5;
        int[] c1={1,2,3,4};
//        int sum=sumOf(a1,b1,c1);
        //关于动态参数的可用不可用
        //int sum=sumOf(a1,b1);
        int sum=sumOf(a1,b1,1,2,3,4,5);
        System.out.println(sum);
    }
    /**
     *
     * @param a  参数
     * @param b  参数
     * @param c   动态参数
     * @return
     */
    public static int sumOf(int a,int b,int... c){
        int sum=a+b;
        for (int i = 0; i <c.length ; i++) {
            sum+=c[i];
        }
        return sum;
    }

5、值传递和引用传递

        (1)值传递 复制值 传递

        (2)引用传递 给引用数据类型地址 发生改变

public class Test4 {
    public static void main(String[] args) {
        int num1=10;
        int num2=22;
        System.out.printf("进入main方法中a的值:%d  b的值:%d:\n",num1,num2);
        swap(num1,num2);
        System.out.printf("进入main方法中a的值:%d  b的值:%d:\n",num1,num2); //num1 num2 未发生改变

        int[] ns={1,2,3,4,5};
        System.out.println(Arrays.toString(ns));
        System.out.println("进入main中数组的arr:"+ Arrays.toString(ns));
        swap(ns);
        System.out.println("进入main中数组的arr:"+ Arrays.toString(ns));  //ns发生改变
        
    }
    //引用传递
    public static void swap(int[] arr){
        System.out.println("进入swap中数组的arr:"+ Arrays.toString(arr));
        if(arr.length>=2){
            arr[0]=arr[0]^arr[arr.length-1];
            arr[arr.length-1]=arr[0]^arr[arr.length-1];
            arr[0]=arr[0]^arr[arr.length-1];
        }
        System.out.println("结束swap中数组的arr:"+ Arrays.toString(arr));
    }
    //值传递
    public static void swap(int a,int b){
        System.out.printf("进入swap中a的值:%d  b的值:%d:\n",a,b);
        a=a^b;
        b=a^b;
        a=a^b;
        System.out.printf("进入swap中a的值:%d  b的值:%d:\n",a,b);
    }
}

二、类的定义:

    1、类:class 关键字:

修饰符 class 类名{
}

    2、类属性:

        里面可以写成员变量--属性(对类的信息静态的信息描述)

        修饰符变量类型变量名:

        修饰符:public

        变量类型:可以是任意类型型

        变量名:标识符 

3、类方法:

        里面可以写功能(对类的动态信息或者功能的描述)

        修饰符  返回值类型方法名(参数){

               修饰待:public 如果没有返回值,返回值的位置写void 如果有返回值,则必须号return对应类型的返回值

      }

4、类的定义:

public class Person {
    String accountName;
    String accountId;
    double accountBalance;

    public void showMessage(){
        String str="%s的银行卡账户为%s的里面的余额为%.2f\n";
        System.out.printf(str,accountName,accountId,accountBalance);
    }
}

5、使用类:

     (1)创建对象语法规则:  类名 对象名= new 类名();  

     (2)调用属性:赋值:对象名.属性名 = 值;

     (3) 取值:数据类型变量名=对象名.属性;

      (4) 调用方法:对象名:方法名(参数);无返回值的方法调用数据类型 变量名=对象名,方法名(参数):有返回值的方法调用

class Test{
    public static void main(String[] args) {
        Person p1=new Person();
        p1.accountName="张三"; //成员变量的赋值
        p1.accountId="A0001";
        p1.accountBalance=246328573469.5623;
        String name =p1.accountName;  //取值
        System.out.println("用户p1的姓名为:"+name);
        System.out.println(p1.accountName+"的银行卡为"+p1.accountId+"余额为:"+ p1.accountBalance);
        p1.showMessage(); //成员方法的调用
        //定义第二个对象

        Person p2=new Person();
        p2.accountName="李四"; //成员变量的赋值
        p2.accountId="A0002";
        p2.accountBalance=246328573469.5623;
        p2.accountName="wang";  //重新赋值
        System.out.println("用户p1的姓名为:"+name);
        System.out.println(p1.accountName+"的银行卡为"+p1.accountId+"余额为:"+ p1.accountBalance);
        p1.showMessage(); //成员方法的调用
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呼哧呼哧.

栓Q!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值