老师,为什么输出内容里什么也没有?
需要你写输出才能显示出来的
System.out.println(U); System.out.println(U1);
public class Cons {
public class User{
int id;
String name;
String pwd;
public User(int id){
this.id=id;
}
public User(int id,String name){
this.id=id;
this.name=name;}
}
public static void main(String[] args){
User u=new User(234);//为什么报错了
}
}有一步报错了,哪里错了
为啥是类里面套了一个类呢
哦哦哦谢谢老师,没注意到
不客气哦,细心点哦
User {
;
String ;
String ;
User(){
System..print();
}
User(id){
.=id;
}
User(id,String name){
.=id;
.=name;
}
main(String[] args) {
User u1=User(,);
User u2=User();
User u3=User();
System..println(u1.);
System..print(u2.);
}
}
输出:
hhh 玩两天
2请问老师,为什么输出里面有“hhh”,并且还是最先输出?
微信找我给你看一下吧
User {
idString nameString pwdUser(){
}
User(id){
.id = id}
User(idString name){
.id = id.name = name}
User(idString nameString pwd){
.id = id.name = name.pwd = pwd}
main(String[] args) {
User u = User()User u1 = User()User u2 = User()}
}老师,这个代码为什么不能run呀?根本没有run的选项。

代码乱码了
老师 那个无参构造器有什么具体用法
无参构造和有参构造都是在你去new对象的时候使用的,如果一个类里有了有参构造模拟想要使用无参构造,这个无参构造必须定义出来,如果你都使用有参构造,其实也是,比如说你有一个类。User,你有4个属性,你创建有参构造就是把这个4个属性值都放在了有参构造里,如果我有一个需求,这个需求是我只要一个属性值被赋值就可以,不需要4个,那么你可以再去创建一个属性值对应的有参构造,如果另一个需求是需要2个参数的属性值,你就需要再创建一个2个参数的有参构造,这样就太繁琐了,需要属性赋值少的可以通过无参构造new出来的对象调用set方法去赋值的。
好的 明白了
不客气哦
在自动生产构造器时,不需要提前存储一下构造器吗?为什么会自动生成与之前代码相同的构造器?是不是因为下面已经使用了构造器,所以直接生成了对应的构造器?
什么意思呢,老师不太理解你的意思。
原因:构造方法不也是方法的一种嘛,在写构造方法的时候,那个声明的形式参数不就相当于方法的局部变量嘛
上面类中已经声明了id的成员变量

疑问:那再写构造方法时申明一样名称的,一样类型的形式参数(相当于方法的局部变量)为什么不会报错:重复的变量名
对,构造方法是一种特殊的方法,这个在构造方法里不会报错,这个也是一个规定,记住就好
class Point {
double x, y;
public Point(double _x, double _y) {
x = _x;
y = _y;
}
public double getDistance(Point p) {
return Math.sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y));
}
public static void main(String[ ] args) {
Point p1 = new Point(3.0, 4.0);
Point origin = new Point(0.0, 0.0);
System.out.println(p1.getDistance(origin));
}
}getDistance后面小括号的(Point p)是调用Point方法吗?不是的话为什么不可以用八个基本的数据类型?最后打印的(p1.getDistance(Origin)p1后面用.连接是规定的格式吗?求解答
getDistance后面小括号的(Point p)是调用Point方法吗?
不是point方法,这里是需要一个Point的对象,可以使用八个基本数据类型,这个参数使用对象,是为了使用封装,面向对象刚学习咱们就的去使用和理解呢
p1后面用.连接是规定的格式吗?
对的,规定的格式,使用对象下的方法和属性,就是对象点属性或者方法
老师,这些方法都没有return,为什么方法名前面不需要加void

构造方法比较特殊,必须和类名相同,没有返回值也没有void,这个是规定
老师为什么最后一条代码会报错呀?跟着打的呀?



这里第三个参数需要传入String类型的,但是你传入的是int类型。
老师您好,我有几个问题请教一下
请问:
重载构造方法的意义是否是为了后续对象调用的灵活性,需要几个参数就用几个参数?
如果使用直接默认的构造器不重载,那么类里定义的局部变量就要全部定义赋值,而不能只选择一个或两个?
第一个说的很对,
第二个默认构造器为无参构造器,如果写了有参构造,和第一个是一样的,在调用时,就是看参数,我们在调用时写了几个参数,就会调用有几个参数的构造器。
老师我这为什么会报错呢
框住的删掉,会自动匹配的。



老师例题中讲解的代码如果我想新定义一个打印的方法,用到this.为啥报错啊?
静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了

老师,我想问下 这里的这个方法名用 point不可以吗
不可以的
构造方法的方法名必须和类名相同
关于方法重载的先后问题,有如下代码:
(feetinches) {
}
(inches) {
(feetremainingInches)}我有三个问题:
如上代码,第一个两个参数的方法,是否一定要写在第二个调用该方法之前?还是说方法之间,即便存在相互调用关系,先后顺序也无所谓?
在之前的代码中,我发现有时候main方法会写在普通方法之前,有时候会写在普通方法之后,但并不影响main方法调用方法。是否在JAVA中,程序遇到方法调用时,即便调用的方法在正在执行的代码之后,程序也会向下寻找方法,而不是说,必须在调用方法的代码前,就必须声明方法?
关于main方法应该放在整个代码最前,还是放在声明的方法后边,是否有一个统一的规范?谢谢
1.第一个两个参数的方法,是否一定要写在第二个调用该方法之前?还是说方法之间,即便存在相互调用关系,先后顺序也无所谓?
答:方法之间即使存在相互调用的关系先后调用不影响的。
2.在之前的代码中,我发现有时候main方法会写在普通方法之前,有时候会写在普通方法之后,但并不影响main方法调用方法。是否在JAVA中,程序遇到方法调用时,即便调用的方法在正在执行的代码之后,程序也会向下寻找方法,而不是说,必须在调用方法的代码前,就必须声明方法?
答;main方法没有规范,只要是在方法之外类中就可以,main方法是最后才去执行的一个操作