day2 学习关于运算和关于实列问题

day2 java 8-26

为何调用 pow 方法无需 new,但使用其他一些方法时必须加 new

根本区别在于 方法的类型和用途不同

  • 无需 newpow:属于静态方法 / 全局函数(如 Math.pow),用途是直接接收参数并执行计算、返回结果,不涉及 “创建新对象”,因此直接调用即可。
  • new 的方法:本质是构造函数(如 new Date()new Array()),用途是 “创建该类的新实例对象”,new 是触发对象创建的关键字,必须加才能生成有效实例。
package com.example.demo.base;
//Less is more
//作用域

/*static 修饰的成员属于 “类级别”,在类加载时就初始化,
生命周期与类一致;而局部变量属于 “方法级别”,仅在方法执行时创建,执行结束后就销毁。两者的生命周期和作用域完全不同,
因此 Java 不允许局部变量使用 static。*/
//非类名要符合驼峰命名方法  类名首字母大写和驼峰命名,如MangoDate
public class Demo4 {
    int num=20;//实列变量  在对象创建时产生并随之销毁
    static int num2 = 20;//类对象 在加载类时就产生,不依赖其他

    //变量类型tye前的都是修饰符,顺序无关
    static final double PI=3.14;//常量用大写 final修饰
    public static void main(String[] args) {
        long num2=23L;//局部变量  重名时,局部变量会覆盖类变量

        Demo4 demo=new Demo4();
        System.out.println(demo.num);
        System.out.println(num2);
        Add2 add2=new Add2();//同包的非public类使用
        add2.add2(2,3);


        System.out.println(PI);
    }
}

运算部分

package com.example.demo.operate;
// /整除
public class Demo5 {
    public static void main(String[] args) {
        //自增++ 自减-- 一元运算符
        //mod % 运算 取余
        //a++先用后加 ++a先加后用
        int a=1;
        int b=a++;//b=a=1,a+=1
        int c=++a;//a=2,a+=1,c=a=3
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        //错误的,java没有**,用写好的类来使用。System.out.println(2**3);Math.pow
        System.out.println(Math.pow(2,3));
        //询问  因为是static方法,是类的方法,直接类名.方法名就可以了,而一些其他的非static称为实列方法,需要new一个对象,必须依赖对象才能使用这些方法
        //短路逻辑运算&& || !与或非  长路运算
        //一个很棒的检验方法
        int d=2;
        boolean flag=(d<1)&&(d++<1);
        System.out.println(flag);
        System.out.println(d);//2没有进行++,因为短路运算,前面为假后面就不运算了
        //位运算&按位与 |按位或 ^异或 ~按位取反 >> <<位运算比较快,效率高

        //字符串拼接 ''在前会拼接10+20位1020  10+20+‘’会显示30
        int a1=10;
        int a2=20;
        char b2='中';//单引号问题
        System.out.println(b2);
        System.out.println((a1+a2+"").getClass());//30 class java.lang.String
        System.out.println(""+a1+a2);//1020
        System.out.println((""+(a1+a2)).getClass());//30  class java.lang.String
        //三目运算 :?
    }
}

Summary

  1. 涉及创建对象实例的需要new一个对象才能使用其方法,但是对与static和全局方法等,它是类级,不是对象级的,所以可以直接使用类名.方法调用,无需new。
  2. 构造函数内部的this指向实例,所以在创建的时候可以接收不同的属性,由同一个类创建不同的实例。
  3. 实例方法是 “对象的行为”,必须跟着对象走;静态方法是 “类的工具”,直接跟着类走
  4. 单引号对应char类型,使用单引号时里面必须有unicode字符,不能为空(指’‘,这样是可以的☞’ ‘),否则会报错.因为无法为’‘分配有效的内存空间。
  5. 一个很棒的思路来验证短路运算。结合a++和++a的区别,确实没想到😦
posted @ 2025-08-27 14:47  Billmu  阅读(7)  评论(0)    收藏  举报