暂无权限

加入尚新途,才有权限看这些视频哦!

点击前往
×
问答
艾开放
1楼

就我听不懂面向对象嘛太难理解了

尚新途

具体是哪里不太理解呀


????
2楼

老师你好

1、图中这个变量taxableIncome还未初始化,也能正常使用。是否因为它是成员变量,会默认初始化。

2、那么在方法中局部变量不会默认初始化,如果声明一个变量的值由其他变量计算所得时,而其他变量的值还未初始化怎么办,这个情况应该怎么处理?改变代码的执行顺序吗?屏幕截图 2022-05-19 093228.png

3、所有代码都是由上往下执行的吗?有哪些代码是优先执行的?

尚新途

1、图中这个变量taxableIncome还未初始化,也能正常使用。是否因为它是成员变量,会默认初始化。

对的,成员变量会给默认值的

2、那么在方法中局部变量不会默认初始化,如果声明一个变量的值由其他变量计算所得时,而其他变量的值还未初始化怎么办,这个情况应该怎么处理?改变代码的执行顺序吗?

改变代码的执行方向是一个办法,但是在设计项目的时候,就应该要想到,这个值是在别的值的基础上去运行的,那么这个值肯定要放在后面去执行。

3、所有代码都是由上往下执行的吗?有哪些代码是优先执行的?

你这个代码是在类里直接去执行的,就是由上往下去执行的,目前没有看到哪里会优先执行


image.png

无忧
3楼

就我自己听不懂嘛

尚新途

不是不是,这个面向对象需要慢慢的去理解,学习面向对象,比较抽象,不好理解,如果不理解,可以微信找老师,老师和你说说

Hhuoz11
4楼
public class User {
int id; // id
String name; // 账户名
String pwd; // 密码
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public static void main(String[ ] args) {
User u1 = new User();
User u2 = new User(101, "高小七");
User u3 = new User(100, "高淇", "123456");
}
}

main方法里的

User u1 = new User();

u1前的User是应该和创建的文件夹名称,整个类的名称保持一样吗

尚新途

public修饰的类要和文件名相同,不是public修饰的,类名和文件名可以不同的。

小樓一夜聽春雨
5楼

栈.JPG这里的 操作数 指的是

尚新途

这个就是你在计算机中做了运行之类的一个临时的存储空间

TPP
6楼

老师,Java中数据变量是放在什么地方的?

如果定义一个int a;那这个a放在哪儿?

是不是说如果a是局部变量,就放在栈帧;如果是对象属性,放在堆。

尚新途

int是基本数据类型,定义后会放在栈里

像string这种字符串类型,在jdk1.8后会放到源数据区,以前放到常量池中

int类型在自动装箱后的integer类型在用构造器进行new创建时会有对象属性,对象属性放在堆里

177****5201
7楼
public class Sxtstu1 {
    int id;
    String sname;
    int age;

    Sxtstu1() {//无参构造器,如果没有手动定义,系统会自动添加

    }

    Sxtstu1(int id){
            System.out.println(id);//就近原则
            this.id=id;
    }
    Sxtstu1(int id,String sname,int age){
        this.id=id;
        this.sname=sname;
        this.age=age;

    }

    public static void main(String[] args) {
        Sxtstu1 s=new Sxtstu1(315,"马",26);
        Sxtstu1 s1=new Sxtstu1(325);
        System.out.println(s);
        System.out.println(s1);
    }


图片.png

老师,为什么运行起来是这个结果

尚新途

你打印的是对象,有两种方法可以打印属性;第一种:在Sxtstu1中重写toString()方法;第二种:使用对象点属性

旭日东升
8楼

老师,我纠正一下哦,高淇老师这里写错了,虚拟的,virtualimage.png

尚新途

很棒,加油~

自我检测(5S)