Java静态方法间接赋值赋值非静态变量
2015-08-17 22:53
525 查看
在编程的过程中有时候我们需要通过一个静态的方法给静态的变量赋值,但是如果是直接赋值,编译器会直接报错:如下:
想必原因大家很清楚了,Cannot make a static reference to the non-static field mouthColor ;但是可以通过以下的方法间接赋值:
调用方法:
输出:
鸭子的嘴是:黄色
关键就是:通过静态的方法(new 一个对象返回)调用非静态的构造方法,再通过非静态的构造方法赋值非静态变量。这样就完成了静态方法间接赋值赋值非静态变量
想必原因大家很清楚了,Cannot make a static reference to the non-static field mouthColor ;但是可以通过以下的方法间接赋值:
public class Duck { public String mouthColor = ""; private Duck(String color) { mouthColor = color ; } public static Duck build(String color) { return new Duck(color); } public String getMouthColor() { return mouthColor; } public void setMouthColor(String mouthColor) { this.mouthColor = mouthColor; } }
调用方法:
public class Test { public static void main(String[] args) { Duck duck = Duck.build("黄色"); System.out.println("鸭子的嘴是:"+duck.getMouthColor()); } }
输出:
鸭子的嘴是:黄色
关键就是:通过静态的方法(new 一个对象返回)调用非静态的构造方法,再通过非静态的构造方法赋值非静态变量。这样就完成了静态方法间接赋值赋值非静态变量
相关文章推荐
- java(08-17)
- Java NIO系列教程(十) Java NIO DatagramChannel
- Java集合(10)--HashSet源码分析
- 利用highStock生成报表(SpringMVC整合)
- Spring与Hibernate与Struts整合(一)配置文件
- Java Servlet【4】一个小的Servlet登录界面+页面跳转
- Java中Iterator(迭代器)的一般用法
- Java集合(9)--Collection 和 Collections
- 大龄屌丝自学笔记--Java零基础到菜鸟--003
- eclipse 终极操作技巧
- java的poi技术读取和导入Excel
- Java集合(8)--HashMap源码分析
- 小白学java
- Eclipse解决中文字体设置
- Java NIO系列教程(九) ServerSocketChannel
- Spring 通过来AOP 实现前置,环绕,异常通知,注解(转)
- JavaSE之内部类
- Java心得15
- ElasticSearch基础使用
- spring源码剖析分享