十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Class.getResource("") 返回的是当前Class这个类所在包开始的位置
成都创新互联公司是一家专注于成都网站设计、网站建设与策划设计,富顺网站建设哪家好?成都创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:富顺等地区。富顺做网站价格咨询:18980820575
举例
URL url = XXXX.class.getResource("");
System.out.println(url);
//输出file:/D:/space/workspace/JDK8/bin/a/
所以a文件下的图片 不需要写 /1.jpg 而直接写 1.jpg
URL url = XXXX.class.getResource("1.jpg");
ImageIcon对象的构造方法很多
比如写图片路径来构造
相对路径的写法
ImageIcon icon = new ImageIcon("src\\a\\50.png");
完整路径,
ImageIcon icon = new ImageIcon("D:\\space\\workspace\\JDK8\\src\\a\\50.png");
使用完整路径,可以加载电脑上的其他位置的图片
比如 ImageIcon icon = new ImageIcon("c:\\50.png");
在图片上右键单击------选择Properties-------弹出对话框里有Location信息
这个信息就是完整路径
根据你下面的代码我判断你这A、B、C应该是String类型的
String类型要判断是否相等是用equalsIgnoreCase("String")
所有这个if语句应该这么写
String A="A";
String B="B";
String C="C";
if((A.equalsIgnoreCase("a") B.equalsIgnoreCase("B"))||(A.equalsIgnoreCase("A") C.equalsIgnoreCase("C"))){
b=true;
break;
}else{
}
package com.date;
public class DateDome {
private int year=0;//年
private int month=0;//月
private int day=0;//日
public DateDome(int year,int month,int day){
this.year=year;
this.month=month;
this.day=day;
}
public DateDome(){
}
//年大于等于0
public boolean isYear(){
boolean suc=false;
if(year0)return suc;
else if(year=0)suc=true;
return suc;
}
//判断月数1-12月
public boolean isMonth(){
boolean suc=false;
if(month0||month12)return false;
else suc=true;
return suc;
}
//判断天数1-31号
public boolean isDay(){
boolean suc=false;
if(day=0||day31)return suc;
else suc=true;
return suc;
}
//是否为闰年
public boolean isRunNian(int year){
boolean suc=false;
if(year=0){
if(year%400==0||(year%4==0year%100!=0)){
suc=true;
}
}
return suc;
}
//判断合法年月日
public boolean isInvaildate(int year,int month, int day){
boolean suc=false;
if(isYear()isMonth()isDay()){
switch(month){
case 1:
suc=true;
break;
case 2:
if(isRunNian(year)day=29){
suc=true;
}else if(day=28){
suc=true;
}
break;
case 3:
suc=true;
break;
case 4:
if(day=30)suc=true;
break;
case 5:
suc=true;
break;
case 6:
if(day=30)suc=true;
break;
case 7:
suc=true;
break;
case 8:
suc=true;
break;
case 9:
if(day=30)suc=true;
break;
case 10:
suc=true;
break;
case 11:
if(day=30)suc=true;
break;
case 12:
suc=true;
break;
}
}
return suc;
}
//根据日期得到天数
public int getDaysByDate(int year,int month,int day){
int days=0;
if(isInvaildate(year,month,day)){
for(int i=0;iyear;i++){
if(isRunNian(i)){
days+=366;
}else{
days+=365;
}
}
for(int i=1;imonth;i++){
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
days+=31;
}else if(i==4||i==6||i==9||i==11){
days+=30;
}else if(i==2){
if(isRunNian(year)){
days+=29;
}else{
days+=28;
}
}
}
days+=day-1;
return days;
}else{
System.out.println("处理有非法日期!!!");
return -1;
}
}
//根据天数得到日期数int[]由,年、月、日组成的数组
public int[] getDateByDays(int days){
int das=0;//预计的天数
int y=0,m=1,d=1;//0年1月1号
int[] date=new int[3];
boolean suc=true;
int temp=0;
if(days0){
System.out.println("请输入合法天数!!!");
return new int[]{0,0,0};
}
while(suc){
if(isRunNian(y)){
temp=366;
}else{
temp=365;
}
das+=temp;
if(dasdays){
y++;
}else{
das-=temp;
break;
}
}
while(suc){
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
temp=31;
}else if(m==4||m==6||m==9||m==11){
temp=30;
}else if(m==2){
if(isRunNian(y)){
temp=29;
}else{
temp=28;
}
}
das+=temp;
if(dasdays){
m++;
}else{
das-=temp;
break;
}
}
d=days-das+1;
date[0]=y;
date[1]=m;
date[2]=d;
return date;
}
//得到多少天前或后合法日期
public int[] addORsubDay(int dd){
int days=getDaysByDate(year,month,day);
if(days=0){
days+=dd;
if(days0){
return getDateByDays(days);
}else{
System.out.println("处理日期不能小于0年1月1号");
return new int[]{0,0,0};//代表无效日期
}
}else{
System.out.println("处理日期不能小于0年1月1号");
return new int[]{0,0,0};//年,月,日
}
}
//得到两个日期相距天数
public int TwoDate(int[] date1,int[] date2){
int d=-1;
if(isInvaildate(date1[0],date1[1],date1[2])isInvaildate(date2[0],date2[1],date2[2])){
int days1=getDaysByDate(date1[0],date1[1],date1[2]);
int days2=getDaysByDate(date2[0],date2[1],date2[2]);
d=days1-days2;
return d=0?d:-d;
}else
{
System.out.println("处理有非法日期!!!");
return d;
}
}
}
我写了你提出的功能,你还可以扩展其它功能。
作为一个Java开发攻城狮(lao si ji),我可以负责任地告诉你,多看多写~
首先,鉴于题主你说你是刚接触地阶段,我并不推荐你你上来就要写工业级或者企业级的代码,当下的话应该是迅速积累项目经验,快速掌握java web的开发流程为主,可以网上看看什么视频教程,有些还是能学到规范的。
分享一下我的经历吧~
读大学的时候我接一些外包【朋友介绍】,一开始也很虚啊,觉得这里不对,那里不对的。写得多了,慢慢理解整个开发流程后,就觉得也就是增删改查嘛,没什么的。每次都要写,好麻烦啊,既然这样,不如自己造一些轮子,后来就是项目多了,又造了一些轮子,然后做了系列的封装。期间穿插读了 重构和effective java两本书,代码方法保持整洁,但一些代码上还是不规范。
再后来,学习了java的一些高级特性,反射、自省【提高了写代码250%的效率】以及参考了部分阿里的规范,感觉逐渐能写出比以前看上去优雅的代码了。
接下来的一段时间,因为兴趣的原因,研究了一下三大框架,自己强行撸了三个阉割版。回去看源码的时候,发现spring写得真的太优雅了,然后又小小改了一下风格。
最后,出来工作了,哦谢特~ 大家写得什么鬼啊~ 什么规范都不参照~ 简直内心爆炸,一万点伤害~ 好吧,我还是照着我原先的思路,搞一搞~
所以说,工业级、企业级代码不是每个公司都有,但是对自身有要求是好事啊~ 你也别急,慢慢写,也能逐渐规范起来~ 只是现在,不合适~ 加油~
还有问题的话,欢迎联系我~
线段类,需要2个私有变量,即表示线段的2个点的坐标(坐标是否要在写个坐标类,包括x,y的坐标,也可以建立4私有变量,自己考虑)
方法1可以写在类中就是传入一个线段类,判断和当前类是否平行
方法2是线段的斜率,通过2个点计算斜率
方法3是线段的长度
首先要算出斜率,因为平行判断用到
斜率计算可以先用2个点的坐标相-,得到类似一个在坐标原点,一个在区间,然后用在区间的店的x,y的坐标计算(如果2个点是0,0 5,5,那么斜率是45度)
长度计算很简单,用勾股定理
最后的判断平行就利用斜率就好了
希望思路对你有帮助
真异或真为假,假异或假为假 || 真异或假为真,假异或真为真
--------------------------------------------------------------------------------------------
a^ b^ a=a--------这个命题是成立的
--------------------------------------------------------------------------------------------
在下例中小写a,b都是指向原始值,大写指向当前值
a=a ^ b;(这里记作条件),并记作:第一步这里"b"还是原来的"b"只是"a"变成a ^ b记作A
---------------------------------
根据上面的命题,应该不难推出:
果让b=原来的"a",可以让现在的"A" : a ^ b "^" b即:A^b=a ^ b^b=a
不难看出b的值已经等于原来的a了记作B=a
经过上面的异或运算,现在的B已经是原来的a了.而现在的A还是a ^ b
----------------------------------------------------------------
当前B=a 当前 A=a ^ b
要得到原来的a等于原来的b.看上面两个等式不难推出
可以让A=B^A=a ^ b^ a 的结果赋值给A,改变当前A的值
此时B=a A=b
固:ab交换
1:a=a ^ b;
2:b=a ^ b;
3:a=a ^ b;;
或者
b=a ^ b;
a=a ^ b;
b=a ^ b;