请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

java学习从“菜鸟”到“放弃”

[复制链接]
查看: 45|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
71562
发表于 2020-1-14 17:37 | 显示全部楼层 |阅读模式
  本日学到java的工具和类中,
  由于刚考完c++面向工具与步伐筹划这门课,对于c++中的类把握自以为不错,就起头过渡到java。
  本日面临的题目,在钞缮一个类的时候,发现了很多与c++差别的地方。

  比如:
 1.在java中,一切的Java工具都是在堆中机关的,机关器总是陪伴着new操纵符一路利用。
  这玩意,就和c++很纷歧样。
  在主函数main中为例,
  1. public static void main(String[] args){        Employee a= new Employee("zhangzhenyu",1000);    }
复制代码

 2.在java中,函树中有static参数和没有static挪用函数方式差别
  这玩意,语法上和c++完全纷歧样。
  在主函数main中为例,
  1)有static
  1. 1 public class test { 2  3     public static void main(String[] args){ 4         Employee a= new Employee("zhangzhenyu",1000); 5         triple(a); 6     } 7     public static void triple(Employee x) {  //静态方式可以间接挪用。 8         x.changeSalary(2000); 9     };10 }
复制代码

   2)没有static
  1. 1 public class test { 2  3     public static void main(String[] args){ 4         Employee a= new Employee("zhangzhenyu",1000); 5         test A = new test(); 6         A.triple(a); 7     } 8     public void triple(Employee x) {  //非静态函数,需要利用工具来挪用。 9         x.changeSalary(2000);10     };11 }
复制代码
3.java中工具援用采取的是值传递
  以书中Empolyee代码为例
  1. public class test {    public static void main(String[] args){        Employee a= new Employee("zhang",1000);        Employee b= new Employee("chen",2000);        //System.out.println(a.getName());        System.out.println("a = "+ a.getName());        System.out.println("b = " + b.getName());        swap(a,b);        System.out.println("a2 = " + a.getName());        System.out.println("b2 = " + b.getName());            }    public static void swap(Employee x,Employee y) {        Employee temp = x;        x = y;        y =temp;        System.out.println("x in the methods = " + x.getName());        System.out.println("y in the methods = " + y.getName());    };}class Employee{    private static int nextId = 1;    private String name;    private double salary;    private int id;        public Employee(String n,double s)    {        name = n;        salary = s;        id = 0;    }    public String getName() {        return name;    }    public double get() {        return salary;    }    public void changeSalary(double a) {        salary = a;    }    public int getId() {        return id;    }    public void setId() {        id = nextId;        nextId++;    }}
复制代码
  1. 成果:a = zhangb = chenx in the methods = cheny in the methods = zhanga2 = zhangb2 = chen
复制代码
假如Java对工具采取的是按援用挪用,疑惑这个方式就应当可以也许实现数据的交换。可是成果不是。
在swap方式竣事时,参数变量x和y被抛弃,本来变量a和b仍然援用这个方式挪用之前所援用的工具。
方式不能点窜传递给它的任何参数变量的内容。
  1. public static void changeSalary(Employee x){    x. raiseSalary(200);}//当挪用a  = new Employee(xxxx);changeSalary(a);
复制代码
补充一种工具援用
工具援用作为参数有些差别
  1. public class test {    public static void main(String[] args){        Employee a= new Employee("zhang",1000);        //System.out.println(a.getName());        System.out.println("a = "+ a.get());        swap(a);        System.out.println("a2 = " + a.get());        }    public static void swap(Employee x) {        x.changeSalary(5555);        System.out.println("a in = " + x.get());        };}class Employee{    private static int nextId = 1;    private String name;    private double salary;    private int id;        public Employee(String n,double s)    {        name = n;        salary = s;        id = 0;    }    public String getName() {        return name;    }    public double get() {        return salary;    }    public void changeSalary(double a) {        salary = a;    }    public int getId() {        return id;    }    public void setId() {        id = nextId;        nextId++;    }}
复制代码
  1. //成果a = 1000.0a in = 5555.0a2 = 5555.0
复制代码
可以看出来,值发生了改变,这个题目我现在还需要再进修进修,还是有些不懂。

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 淄博新闻网-淄博日报 淄博晚报 淄博财经新报 掌中淄博 淄博专业新闻资讯发布网站 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表