解疑初学java比较迷惑的地方
来源:互联网 发布:内存频率测试软件 编辑:程序博客网 时间:2024/05/18 02:51
大一时开始学习java,知道现在开始做项目用于实践当中才真正的明白它的一些基本的方法。
我就用一个实例来解读最基本的java思想
package test.java;/** * 此类用来测试一些最基本的java编程思想 */public class Person {private String name;// 声明成private只有在类的内部才能用(类名.)的方法调用。public int age;//共有成员变量protected final int headNum = 1;// 1.声明称protected一般情况下是为了继承,只有在一个包中的类才能访问。2.声明为final的成员变量的值不能再次被更改。/** * 所有的变量无论声明成私有的还是共有的都能够通过调用类中的方法来获得 */public String getName() {//get方法用于获取成员变量的值return name;}public void setName(String name) {//set方法用于给成员变量赋值this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getHeadNum() {return headNum;}@Overridepublic String toString() {// toString是为了能够方便的输出类所有的成员变量,若果不构建toString方法无法直接输出一个类。return "Person [name=" + name + ", age=" + age + ", headNum=" + headNum+ "]";}public static void cout() {// 声明成静态方法可以不用构建类直接使用,也可以在类外通过(类名.)调用。System.out.println("aa");}public static void main(String[] args) {// TODO Auto-generated method stubPerson person = new Person();person.name = "aa";//在自己的main方法中可以这样使用,但在其他类中不能。}}
接下来是测试类:package test.java;public class Test {/**测试 * @param args */public static void main(String[] args) {// TODO Auto-generated method stubPerson.cout();//在其他类中静态方法的使用Person person=new Person();person.setName("aa");//只能用set方法给name赋值不能用person.name="a";person.age=1;//由于age声明成了共有变量因此可以这样System.out.println(person.headNum);System.out.println(person);}}
另外再说一下另一个比较迷惑人的地方:方法参数的传递参数传递的实质类似于一条赋值语句,将实参保存值的副本传递给形参。因此对形参的任何修改都不会影响实参的值。
但是需注意:如果将一个对象传递给一个方法,实际上传递的是这个对象的引用,复制给形参的是这个对象的地址,因此形参名和实参名互成了对方的别名。如果通过被调用的形参引用而改变的对象的状态,也就改变了实参引用的对象。若果改变了形参引用本身(使其指向一个新对象),并不影响实参,实参仍然指向原对象。
0 0
- 解疑初学java比较迷惑的地方
- Java初学的迷惑
- 最近迷惑的地方
- Oracle初学的迷惑!
- 初学java应该注意的地方
- Java初学需要注意的地方
- java各种编码的解疑
- String的一个容易迷惑的地方
- 内部类容易迷惑的地方
- 学习java的迷惑
- java字符串比较的迷惑(equals,“==”的差异)
- Java学习解疑
- 初学Linux[17]--加入Linux阵营初期:初学者常问的八大问题解疑
- 初学php和一年的java之间的比较
- 初学C51者应注意的地方
- mule初学的一个注意地方
- 初学php,记下其特殊的地方
- mule初学的一个注意地方
- 查找类命令
- FirstDayofMemoryTraining
- 进程管理类命令
- vector中的成员函数
- nutch-1.7-学习笔记(1)-org.apache.nutch.crawl-ToolRunner
- 解疑初学java比较迷惑的地方
- 税
- C++标准程序库(学习笔记)三
- window.btoa与window.atob
- qt中moc的作用
- 二叉树之先序建立二叉树
- leetcode----Two Sum
- eclipse中工程出现红叉但代码没错误
- MAC OSX使用Python安装模块问题