鱼C论坛

 找回密码
 立即注册
查看: 2971|回复: 0

[学习笔记] Java暑期学习Day13

[复制链接]
发表于 2017-7-17 23:46:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天是第13天,希望能坚持下去(同开始背cet)


                               
登录/注册后可看大图


在构造函数参数与对象数据成员同名时,可用this加以区别
<div>
public class CashCard {

        private String number;
        private int balance;
        private int bonus;</div><div>
public CashCard(String number,int balance,int bonus){
                this.number=number;//参数number指定给这个对象的number
                this.balance=balance;
                this.bonus=bonus;
        }
//...
}
</div>


在Java中,this()代表了调用另一个构造函数,至于调用了哪一个构造函数,则视调用this()时给的自变量类型与个数而定。
this()调用只能出现在构造函数的第一行
不然会报          Constructor call must be the first statement in a constructor
<div>public class Some {

        private int a = 10;
        private String text = "n.a.";

        public Some(int a) {
                if (a > 0) {
                        this.a = a;
                }
        }

        public Some(int a, String text) {

                this(a);
//this(a)会调用public Some(int a)版本的构造函数,再执行if(text!=null)之后的代码程序</div><div>
        if (text != null) {

                        this.text = text;

                }

                // ...

        }

}
</div>



【报错记录】
The method main cannot be declared static; static methods can only be declared in a static or top level type
package tankwar;

class Other {
        {
                System.out.println("对象初始区块");
        }

        Other() {

                System.out.println("Other()构造函数");
        }

        Other(int o) {
                this();
                System.out.println("Other(int o)构造函数");
        }

}

public class Apple {
        public static void main(String[] args) {
                new Other(1);
        }

}

结果:

对象初始区块
Other()构造函数
Other(int o)构造函数



【报错记录】
Syntax error on token "Invalid Character", ;
expected

invalid:adj.无效的; 不能成立的; 有病的; 病人用的;
              vt.使伤残; 使退役; 失去健康;
              n.病人,病号; 残废者; 伤病军人;

class Person {

        private String name ;
        private int age;
        private String city;
        public Person(){
                System.out.println("无参构造方法");
        }

        // 带参数的构造方法
        public Person(String name, int age, String city) {
                this();
                this.name = name;
                this.age = age;
                this.city = city;

        }

        public void setCity(String city) {
                this.city = city;
        }

        public String getCity(String city) {
                return city;
        }

        public void setName(String name) {
                this.name = name;
        }

        public String getName(String name) {
                return name;
        }

        public void setAge(int age) {
                this.age = age;
        }

        public int getAge() {
                return age;
        }

        public String toString(){
                System.out.println(getAge());
             return  "名字:"+this.name+",今年:"+this.age+"岁,家住:"+this.city ;
     }

}

public class ConstructorDemo {
        public static void main(String[] args) {

                Person p = new Person("张三", 18, "武汉");
                /*
                 * 在堆中开辟空间,给属性分配默认的初始值 假设属性一开始赋值了,就进行赋值工作 调用构造方法来对属性进行初始化
                 * p.setName("张三"); p.setAge(10);
                 */

                System.out.println(p.toString());
                /*
                 * Object类中的toString()方法源码: 
public String toString() { 
return getClass().getName() + "@" + Integer.toHexString(hashCode()); 
} 
假如类复写了Object类(此类为Java根基类)中的toString()方法 例如: 
public String toString(){ 
return "Hello"; //这里才是要返回的值 如果没复写 则调用Object类中的toString()方法(打印类的全限命名+内存地址) } 
                 * 
                 */
        }
}





评分

参与人数 1鱼币 +2 收起 理由
小甲鱼 + 2

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 13:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表