java修改
A. java 修改java文件的内容
不懂你的意思呃,是要修改.java文件吗,直接 用io读取和写文件,用字符串比较定位要修改的内容不就完了吗,就当和txt文件一样操作....
B. 修改JAVA代码
首先我先说下jdk是不支持泛型的,但是可以用强制转型的方式
1.去掉每个类的<>的东西,如改写成List sockets=new ArrayList();报错的地方用强制转型的方式改写,如(Socket) socket
2.ChatToMul这个类中for循环改写为Iterator
for(Iterator it = sockets.iterator();it.hasNext();){
Socket socketto = (Socket) it.next();
PrintWriter pw=MyUtil.getPrintWriter(socket);
PrintWriter pwto=MyUtil.getPrintWriter(socketto);
pw.println(socket.getRemoteSocketAddress().toString()+"对"+
socketto.getRemoteSocketAddress().toString()+"说:"+message);
pw.flush();
pwto.println(socket.getRemoteSocketAddress().toString()+"对"+
socketto.getRemoteSocketAddress().toString()+"说:"+message);
pwto.flush();
}
这样基本改写成功。
如果需要源代码话,就联系我,我传给你,
代码改写不易,望采纳
C. java中如何修改String 字符串的值,比如give改成gave
String是不可变的对象,把“give”变成“gave”,实际上是把引用从“give”指向“gave”。
D. java类的方法怎么修改和删除
你是说怎么完成这段代码吗。
电影名、导演、价格都是变量
你是不是想写个代码获得不同的用户信息然后进行打印。
首先无论怎么写一定要先有个main方法。比如说你的show方法想要跑起来就在main方法里叫一下他
show(filmTitle,director,price);
因为show方法里已经有个System.out.println();
所以给他传值运行之后信息就打印出来了。在show方法之前你要有scanner去获取你要输入的信息。
Scanner sc = new Scanner(System.in);
然后获得你要输入的信息,比如price
System.out.println("请输入相应的价格");
price = sc.nextDouble(); 以此类推
E. java 怎么修改string值
String对象不可修改指的是对象本身不可修改,而不是引用不可修改。
String a = "你好";
这行代码的意思是声明一个String类型的引用变量叫做a,在内存中创建一个String对象(值为"你好"),然后把这个对象的引用赋值给变量a。
a = "hello";
这行代码执行的效果是在内存中另外创建了一个String对象(值为"hello"),然后把这个新对象的引用赋值给变量a,而不是把原来的内存中的那个“你好”的String对象值变为“hello”。如果之后内存中那个“你好”的String对象没有任何引用,那么就会被下一次垃圾回收器运行时回收。
String和所有的基本类型包装类的对象都是不变量。内存中的不变量对象的值是不能被改变的。
F. java中如何实现修改功能
public interface Parent(){
public void simpleCall();
}
public class Child_A implements Parent{
public void simpleCall(){
System.out.println("a---simpleCall");
}
}
public class Child_B implements Parent{
public void simpleCall(){
System.out.println("b---simpleCall");
}
}
child_a和child_b中的simpleCall可以实现不同的功能。。。多态,简单说其实就是一种功能的多种实现方式。或者理解为多种形态。
G. java中的类名想修改如何修改
在这个类的java文件名上选中,按F2,然后修改
H. java怎么修改Set里的值
通过remove和add方法,set集合中的对象属性为private final
Set接口
集合里的多个对象没有明显顺序。Set集合和Collection基本一样,没有
提供额外方法,只是和Collection行为不同
Set集合不允许包含相同的元素,如果add的是两个相同元素会返回false
Set不实用==运算符,根据equals方法
HashSet类
HashSet类是Set接口的典型实现,大多数时候使用Set集合都是用这个类实现
HashSet按Hash算法来存储集合中的元素
HashSet特点:
1.不能保证元素的排列顺序,顺序可能变化
2.HashSet不是同步的,多个线程同时访问一个Set集合,必须用代码
保证同步
3.集合元素值可以是null
当向HashSet集合中存入一个元素,HashSet会调用该对象的HashCode()
得到对象的hashCode,根据HashCode来决定对象在HashSet中的位置
如果两个元素equal方法比较返回true但是hashCode()方法返回值不同,
HashSet会把两个元素存储在不同位置
HashSet判断两个元素相同需要equal和hashCode都相同
因此重写类的equals方法和hashCode()方法要保证两个对象通过equals
返回true时hashCode也相等
Hash算法保证通过一个对象快速找到另一个对象。可以很快的执行,当需要
查找集合中的某个元素时,hash算法可以直接根据该元素的值找到该元素
从而让程序快速找到元素。
在数组中通过数组元素索引寻找元素,HashSet通过hashcode索引
重写hashCode()方法的基本步骤
当两个对象通过equals方法返回true时,两个对象的hashCode相等
对象中用作equals比较标准的属性,应该用来计算hashCode
向HashSet中添加可变对象时,如果修改HashSet集合中对象,有可能导致
该对象与集合中其他对象相等,从而导致HashSet无法正确访问对象
HashSet有一个子类 LinkedHashSet,LinkedHashSet集合也是根据HashCode来决定
元素的存储位置,同时使用链表维护元素次序,这样是的元素看起来是以
插入顺序保存,便利集合时会按插入顺序来访问。
Linked需要维护元素的插入顺序,性能略低于HashSet,但在迭代时性能更好
TreeSet是SortedSet接口的唯一实现
TreeSet可以确保元素处于排序状态。提供了几个额外方法:
1.Comparator
comparator():返回当前Set使用的Comparator,或者null,表示
自然的方式排序
2.Object first():返回集合中的第一个元素
3.Object last():返回集合中最后一个元素
4.Object lower(Object
e):返回集合中位于指定元素之前的元素
5.Object higher(Object
e):返回集合中位于制定元素之后的元素
6.SortedSet
subSet(fromElement,toElement):返回set的子集,范围从from到to
7.SortedSet headSet(toElement)返回set子集,小于toElement
8.SortedSet
tailSet(fromElement)返回set子集,由大于等于fromElement元素组成
TreeSet是根据元素值来进行排序而不是根据插入顺序
TreeSet采用红黑树的数据结构对元素排序 :支持自然排序(默认)和定制排序
自然排序:
TreeSet会调用集合元素的compareTo方法来比较元素之间的大小关系,
然后将集合元素按升序排列。
Java提供了一个Comparable接口,该接口定义了一个compareTo(Object obj)方法
该方法返回一个整数值,实现该接口的类必须实现该方法,实现了该接口的类的对象
可以比较大小。obj1.compareTo(obj2),如果方法返回0,表明两个对象相等。如果
返回正整数,表明obj1大于obj2;如果返回负整数,表明obj1小于obj2
如果要将对象添加如TreeSet该对象必须实现Comparable接口
当想TreeSet中添加对象时,会先将要添加的对象与TreeSet中的对象用compareTo比较
如果找不到compareTo则引发ClassCastException异常
因为只有同一个类型才能比较大小 所以TreeSet中添加的应该是同一个类型的对象
TreeSet和HashSet集合中的对象如果是可变对象,对象属性改变时,会导致集合处理
对象复杂化,易出错。所以应该尽量在集合中添加不可变对象
不可变对象是
1.属性为private final
2.含有带参数构造器,为对象初始化
3.属性有get方法没有set方法
定制排序:
TreeSet的自然排序是根据集合元素大小,TreeSet将它们以升序排列。使用定制
排序,如降序,使用Comparator接口的帮助。接口中包含一个int compare(T o1,T o2)
用于比较o1和o2的大小:重写该方法可以改变排序规则
I. java应该怎么改
一个.java文件中只允许定义一个public的类,而且要求这个类必须和所在的.java文件同名,你在一个文件里定义了2个public的类,把它拆分出来,拆到不同的文件里去
J. Java代码修改
importjava.awt.Canvas;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Graphics;
importjava.awt.Image;
importjava.util.Random;
importjavax.swing.JFrame;
{
privateintwidth,height;
privateImageoffScreen;//缓冲图片
privatechar[][]charset;//随机字符集合
privateint[]pos;//列的起始位置
privateColor[]colors=newColor[25];//列的渐变颜色
publicRainCanvas(intwidth,intheight){
this.width=width;
this.height=height;
//生成ASCII可见字符集合
//创建一个新的随机器
Randomrand=newRandom();
//width/10为字符雨屏幕的宽度height/10为字符雨屏幕的长度
//随机字符数组
charset=newchar[width/10][height/10];
for(inti=0;i<charset.length;i++){
for(intj=0;j<charset[i].length;j++){
//nextInt(intn)返回一个伪随机数,它是从此随机数生成器的序列中取出的、在0(包括)和指定值(不包括)之间均匀分布的int值。
//48--144代表键盘上的字母符号数字
//为charset数组的每个元素取值
charset[i][j]=(char)(rand.nextInt(96)+48);}
}
//随机化列起始位置
pos=newint[charset.length];
for(inti=0;i<pos.length;i++){
pos[i]=rand.nextInt(pos.length);
}
//生成从黑色到绿色的渐变颜色,最后一个保持为白色
for(inti=0;i<colors.length-1;i++){
//颜色渐变
colors[i]=newColor(0,255/colors.length*(i+1),0);}
//设置最底下一个的字符的颜色00255蓝色25500红色255255255白色02550绿色
colors[colors.length-1]=newColor(0,0,255);
setBackground(Color.black);
setSize(width,height);
setVisible(true);
}
publicvoidstartRain(){
newThread(this).start();
}
publicvoiddrawRain(){
if(offScreen==null){
return;
}
// Randomrand=newRandom();
//getGraphice()创建供绘制闭屏图像使用的图形上下文
Graphicsg=offScreen.getGraphics();
//通过使用当前绘图表面的背景色进行填充来清除指定的矩形。
g.clearRect(0,0,width,height);
//将此图形上下文的字体设置为指定字体。使用此图形上下文的所有后续文本操作均使用此字体。
g.setFont(newFont("Arial",Font.PLAIN,14));
//
for(inti=0;i<charset.length;i++){
//intspeed=rand.nextInt(3);
for(intj=0;j<colors.length;j++){
//去掉j只显示蓝色的一个字符去掉charset[i].length显示黑屏
intindex=(pos[i]+j)%charset[i].length;
//将此图形上下文的当前颜色设置为指定颜色。
g.setColor(colors[j]);
//使用此图形上下文的当前字体和颜色绘制由指定字符数组给定的文本
g.drawChars(charset[i],index,1,i*10,index*10);
}
pos[i]=(pos[i]+2)%charset[i].length;
}
}
@Override
publicvoipdate(Graphicsg){
paint(g);
}
publicvoidrun(){
while(true){
drawRain();
repaint();
try{
Thread.sleep(50);//可改变睡眠时间以调节速度
}
catch(InterruptedExceptione){
System.out.println(e);
}
}
}
@Override
publicvoidpaint(Graphicsg){
//当组件显示时检测是否要创建缓冲图片,在组件还不可见时调用createImage将返回null
if(offScreen==null){
offScreen=createImage(width,height);
}
g.drawImage(offScreen,0,0,this);
}
}
{
privateRainCanvascanvas=newRainCanvas(1366,768);
publicZFYTest(){
super("ZFY");
setUndecorated(true);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
canvas=newRainCanvas(this.getWidth(),this.getHeight());//canvas=newRainCanvas(800,600);
getContentPane().add(canvas);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicstaticvoidmain(String[]args){
ZFYTesttest=newZFYTest();
test.canvas.startRain();
}
}