就我听不懂面向对象嘛太难理解了
具体是哪里不太理解呀
老师你好
1、图中这个变量taxableIncome还未初始化,也能正常使用。是否因为它是成员变量,会默认初始化。
2、那么在方法中局部变量不会默认初始化,如果声明一个变量的值由其他变量计算所得时,而其他变量的值还未初始化怎么办,这个情况应该怎么处理?改变代码的执行顺序吗?
3、所有代码都是由上往下执行的吗?有哪些代码是优先执行的?
1、图中这个变量taxableIncome还未初始化,也能正常使用。是否因为它是成员变量,会默认初始化。
对的,成员变量会给默认值的
2、那么在方法中局部变量不会默认初始化,如果声明一个变量的值由其他变量计算所得时,而其他变量的值还未初始化怎么办,这个情况应该怎么处理?改变代码的执行顺序吗?
改变代码的执行方向是一个办法,但是在设计项目的时候,就应该要想到,这个值是在别的值的基础上去运行的,那么这个值肯定要放在后面去执行。
3、所有代码都是由上往下执行的吗?有哪些代码是优先执行的?
你这个代码是在类里直接去执行的,就是由上往下去执行的,目前没有看到哪里会优先执行
就我自己听不懂嘛
不是不是,这个面向对象需要慢慢的去理解,学习面向对象,比较抽象,不好理解,如果不理解,可以微信找老师,老师和你说说
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修饰的,类名和文件名可以不同的。
这里的 操作数 指的是
这个就是你在计算机中做了运行之类的一个临时的存储空间
老师,Java中数据变量是放在什么地方的?
如果定义一个int a;那这个a放在哪儿?
是不是说如果a是局部变量,就放在栈帧;如果是对象属性,放在堆。
int是基本数据类型,定义后会放在栈里
像string这种字符串类型,在jdk1.8后会放到源数据区,以前放到常量池中
int类型在自动装箱后的integer类型在用构造器进行new创建时会有对象属性,对象属性放在堆里
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); }
老师,为什么运行起来是这个结果
你打印的是对象,有两种方法可以打印属性;第一种:在Sxtstu1中重写toString()方法;第二种:使用对象点属性
老师,我纠正一下哦,高淇老师这里写错了,虚拟的,virtual
很棒,加油~