在这里.opp包和.test包中均含有类Test01,如果我在当前的TestImport中试图把两个Test01均导入,第二个会报错。
import com.itbaizhan.oop.Test01; import com.itbaizhan.test.Test01; import com.itbaizhan.test.Test02; import com.itbaizhan.oop.Car;
提问太快了,视频后面有解答,已解决
好的
请问蔚老师,为什么我的文件夹里面没有src啊?
如果需要的话应该怎么引入呢?
你这里创建错了,你创建了一个文件夹,应该创建一个模块modle.
请问老师,红色框内的是模块,绿色的是文件夹对吗
我圈出来的是模块,你说的绿色的是文件夹,包括mycode这个也是文件夹,只是权限不同而已。
请问模块,文件夹,软件包的权限有啥不同?
模块不说权限,模块是可以是一个项目,而文件夹权限不同,例如src文件夹可以写java代码,而你创建的普通文件夹不可以,是因为我们给src赋了sources root权限。
请问蔚老师,为什么这个package包能够自动生成?
因为你的类在哪个包中,他会自动识别并加到代码中
请问为啥要加到代码里,作用是啥?!
标明你的类在哪个包中呀
老师 为啥我没有课后 温故而知新的小练习呢
我记得一开始是有的 后面的章节都没有练习了吗
咱们的课程要批量的更新的,现在这个功能取消了,因为温故而知新的练习有很多和课程对不上,所以先取消了,敬请期待吧
请问静态导入是指:
1、只导入指定类中所有被static修饰过的方法和属性吗?
2、作用只有让其他包的类在使用时,不用加域名,直接以属性名或方法名调用吗?
3、如果导入的另一个包中的属性或方法,也有与静态导入的属性或方法有一样的名字,是否也是用加域名的方法进行区分?
1、对
2、对,可以这样理解
3、可以的
为什么还有背景音乐哈哈哈,麻烦老师把音乐关掉
老师,1.import导入的类和我们自己写的类有什么区别?
2.编译的时候是不是不用再去编译jar包的类了?
3.在后面我们学的多个模块的开发,比如controller引入mapper模块,我打开controller的war包发现他是把mapper打好的jar放在WEB-INF/lib里面,是不是可以理解成mapper的所有包和类拷贝在controller模块同样的位置上。
4.如果mapper模块有配置文件,被依赖到controller模块,那mapper的配置文件最后编译的时候会在哪?
5.我还是有点搞不清,为什么关于mapper的配置比如db.properties、applicationContext-dao.xml放在controller模块而不放在mapper模块呢
1、import的包是你从外部导进来的,不导入进来你自己写的类是用不了的。
2、你这个jar是外部导入的jar包吧,这个jar包会在编译你的类的同时,编译
3、tomcat的结构记得吧,web项目的jar包都在webapp下的WEB-INF下的lib目录里
4、mapper的配置文件原来在那那就还是在那,和是不是引入到controller没关系,因为mapper的配置文件是mapper模块自己读取的
5、controller引入了mapper模块,你可以把配置文件放在mapper下,也可以放在controller下。
那为什么单独打包mapper的时候不会报读不到配置文件的错误呢,编译的时候是不是不会读配置文件?
肯定呀,还记得飞机项目吗,out就是你编译完的目录,相片啥的不都是在out目录里存在吗
老师,有没有关于程序编译、运行时做了什么的帖子或者教程推荐一下,感觉对于这些底层的东西就是知道会怎样,但是不知道为什么会这样
https://blog.csdn.net/cynhafa/article/details/82425456
https://blog.csdn.net/W_J_G_/article/details/109712916
package assay;
public class Rational {
public long num=0;
public long den=1;
public Rational() {
this (0,1);
}
public Rational(long num, long den ) {
//shift
this.num=num;
this.den=den;
}
public Rational add(Rational r) {
long Num=num*r.den +r.num*den;
long Den=den*r.den;
return new Rational(Num,Den);
}
public Rational substract(Rational r) {
long Num = num*r.den-r.num*den;
long Den= den*r.den;
return new Rational(Num,Den);
}
public Rational mul(Rational r) {
long Num=r.num*num;
long Den=r.den*den;
return new Rational (Num,Den);
}
public Rational div(Rational r) {
long d = den;
long Num=r.num*d;
long Den = r.den *num;
return new Rational(Num,Den);
}
import java.util.*;
import java.util.Scanner;
public class Rational_Test{
public static void main(String args[]) {
Rational r1,r2;
Scanner scan = new Scanner(System.in);
int num1, den1, num2, den2;
num1 = scan.nextInt();
den1= scan.nextInt();
num2 = scan.nextInt();
den2= scan.nextInt();
r1=new Rational(num1,den1);
r2=new Rational(num2,den2);
System.out.println(r1.add(r2));
System.out.println(r1.substract(r2));
System.out.println(r1.mul(r2));
System.out.println(r1.div(r2));
}
}
老师,本来想写一个加减乘除的码 在eclipse上打的话显示第二行语法错误,不知道错在哪,还有Rational Test也报错。
不报错呀
老师,最后怎么表示成分数的形式呀
分数?分子和分母还是什么意思呢?
我的报错显示misplaced construct(s),然后下面是原本的要求,码是朋友发给我的,我看不出来啥问题但我在eclipse上打出来就有问题,朋友那边也是出乱码。
我这里不报错呀,你是不是把两个类放在一起了。
可以参考一下
https://blog.csdn.net/qq_42391248/article/details/88178322
老师,你是把我的码复制粘贴的吗还是操作了?我这就是老显示语法错误。。
再就是那个分数表示问题,那个用的是打印的,跟我这个格式不太一样啊。
我直接复制粘贴的呀,什么也没有做。代码在我这里就不报错呀。
老师请问,为什么我这个静态导入出现编译错误?
这个是语法问题,我们static修饰的方法和属性,需要使用类名调用,比如:
System.out.println(TestStaticImport.AGE);
老师它这个显示错误说无法解析方法login()是什么问题
我需要看一下你的User类
package com.bjsxt.test2; public class User { int id; String name; String pwd; public void show(){ System.out.println( id+"\t"+name+"\t"+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,name); /*this.id=id; this.name=name; */ this.pwd=pwd; } public static void main(String[] args) { User u1=new User(); u1.show(); User u2=new User(101,"高小齐"); u2.show(); User u3=new User(102,"高小八","123456"); u3.show(); } }
你的login方法在哪里写的呢?
public class Test { int x, y; Test(int x, int y) { this.x = x; this.y = y; } public static void main(String[] args) { Test pt1, pt2; pt1 = new Test(3, 3); pt2 = new Test(4, 4); System.out.print(pt1.x + pt2.x); } }
老师这个作业题,能帮我讲解下吗,我在程序上运行结果为7.搞不懂为啥是7.
通过这个赋值,我们知道pt1.x = 3, pt2.x = 4。
最后你打印其实就是 3 + 4 ,所以结果是7
第五章 Java 面向对象编程进阶的课后作业中的题目:
我看到的课后答案给出的是AC。下面是我的测试内容:
package com.bjsxt.unit01.chapter05; public class Test { //定义两个类方法 public void fun01(){ System.out.println("调用了fun01()方法"); } public void fun02(){ System.out.println("调用了fun02()方法"); } //接下来验证每个选项 public void fun03(){ //A 在类方法中可用this来调用本类的类方法 this.fun01(); //可以使用this调用本类的方法,选项A正确 //B 在类方法中调用本类的类方法时可直接调用 fun01(); //可以直接调用,选项B正确 //C 在类方法中只能调用本类中的类方法 System.out.println("调用了system类的方法!"); //显然错误,可以调用System类的方法.选项C错误 //D 在类方法中调用实例方法需要先创建对象 fun01(); //明显错误,可以直接调用,也可以通过this关键字调用。类方法之间的调用不用创建对象。 } //main方法测试 public static void main(String[] args) { Test t01 = new Test(); t01.fun03(); } }
老师,我想问下是我哪里理解有问题吗?
注意:在java中被static关键字修饰的方法称之为类方法。首先要对定义理解清楚~
A:静态方法(类方法)中是没有this关键字的
C:类方法中可以调用其他类的类方法
为什么下面结果都是10,count的值是怎么变化的?
public class Test { int count=9; public void count1(){ count=10; System.out.print("count1="+count); } public void count2(){ System.out.print("count2="+count); } public static void main(String[ ] args) { Test t=new Test(); t.count1(); t.count2(); } }
程序是由上向下执行的,先执行count1()会将count的值有9改为10。当执行count2()时,count的值已经被改为10了,所以打印的结果都是10.
如果先执行count2()后执行count1()那么结果就是一个9一个10了,可以测试一下。
1,老师,Java会默认导入java.lang包,请问这种导入的原理是什么?
2、在导入自己创建的包时,很清楚可以看到路径
但是在导入java.awt.*;的时候,右侧的文件夹中根本看不到java.awt下所有的类,请问这其中的原理是什么?
所有java源码目录在你的JRE System Library里面。比如你要玩个游戏,进入游戏总要有个立足之地吧,你进行java编程,立足之地就是lang这个包,java一生全靠浪
那么老师,java是如何调用java.awt 下所有的类呢?我在左侧目录中也没看到java.awt包
import java.awt.*;
*表示通配符,表示导入这个包下所有的类
老师,怎样访问不同包中的非public类?
好好复习一下
https://www.cnblogs.com/zdmylove/p/5958053.html