类的基本形式2(有this关键字的使用)

1.构造方法

构造方法主要作用是帮助新创建的对象赋初始值。

定义方式:class 类名称{

访问权限 类名称(类型1 参数1,类型2 参数2......){

程序语句;

.......      //构造方法没有返回值

}

}

注意:1.它具有与类名相同的名称 2.它没有返回值

调用机制:构造方法在创建对象是自动调用,并执行构造方法内容(构造方法无需在程序中调用,在对象生成是自动执行)

public class c {

     public c(){
         System.out.println("sea");
     }
    public static void main(String[] args) {
        c a=new c();
    }

}

2.构造方法的重载

只要构造方法的参数个数不同或类型不同,就可以定义多个名称相同的构造方法。

public class c {
     private int age;
     private String name;

     public c(int a,String n){
            age=a;
            name=n;
            System.out.println("sea");
     }
     public String show(){
              return "我叫"+name+",年龄"+age;
          }
    public static void main(String[] args) {
        c a=new c(18,"jeep");
        System.out.println(a.show());
    }

}

3.对象的比较

内存地址比较:==

内容比较:equals()

public class equal {
    //“==”比较对象储存的物理位置
    public static void main(String[] args) {
        String a=new String("aaa");
        String b=new String("aaa");
        String c=b;
        if(a==b){
            System.out.println("a==b");
        }else{
            System.out.println("a!==b");//输出
        }
        if(b==c){
            System.out.println("b==c");//输出b==c
        }else{
            System.out.println("b!==c");
        }
        if(a==c){
            System.out.println("a==c");
        }else{
            System.out.println("a!==c");//输出
        }     } }
public class equal {
    //“equals”比较对象的内容
    public static void main(String[] args) {
        String a=new String("aaa");
        String b=new String("aaa");
        String c=b;
        if(a.equals(b)){
            System.out.println("a==b");//输出
        }else{
            System.out.println("a!==b");
        }
        if(b.equals(c)){
            System.out.println("b==c");//输出
        }else{
            System.out.println("b!==c");
        }
        if(a.equals(c)){
            System.out.println("a==c");//输出
        }else{
            System.out.println("a!==c");
        }
    }

}

4.this关键字的使用

(1)this表示当前对象,即指调用类中方法或类中属性的那个对象

public class this1 {
       private int age;
       private String name;
       public  this1(int a,String n){
            age=a;//this.age=a;
            name=n;//this.name=n;
        }

}

(2)用this调用构造方法

public class this1 {
        int age;
       String name;
       public  this1(){
            System.out.println("lady1");
        }
       public  this1(int a,String n){
           this();//调用无参数的构造方法
           this.age=a;
           this.name=n;
           System.out.println("******");
       }

}
public class this11 {

    public static void main(String[] args) {
        new this1();//没有参数,调用没有参数的构造方法
        new this1(11,"lady");//有参数调用有参数的构造方法
    }

}
时间: 2024-10-24 06:15:12

类的基本形式2(有this关键字的使用)的相关文章

ibernate学习笔记5---实体类或属性名与数据库关键字冲突、hql命名参数、hql实现通用分页

一.实体类或属性名与数据库关键字冲突问题1.实体类名与数据库中的关键字冲突比如:实体表User与oracle中的系统表冲突解决方式1:在xml中添加table属性,指定表名,使其不与name默认相等 [html] view plaincopyprint? <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hiber

java多线程系类:基础篇:04synchronized关键字

概要 本章,会对synchronized关键字进行介绍.涉及到的内容包括:1. synchronized原理2. synchronized基本规则3. synchronized方法 和 synchronized代码块4. 实例锁 和 全局锁 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3479202.html 1. synchronized原理 在java中,每一个对象有且仅有一个同步锁.这也意味着,同步锁是依赖于对象而存在.当我们调用某对象的sy

2.匿名类,匿名类对象,private/protected/public关键字、abstract抽象类,抽象方法、final关键字的使用,多线程Thread类start方法原理

package com.bawei.multithread; //注意:模板方法我们通常使用抽象类或者抽象方法!这里我们为了方便在本类中使用就没有使用抽象类/抽象方法 public class TemplateThread { //如果这个方法不想被子类或者别人随意改动[这样子类就不能覆写该方法了],这里方法就要设置为final方法 public final void println(String message){ System.out.println("###################

C#学习日志 day 4 ------ 类相关---this指针以及相关关键字

c#中的类和java中的类没什么太大区别.但是c#有些特有的关键字以及属性使得c#具有一些特性. 首先就是this关键字,this在c++和java中都有,可以表示当前对象,以及变量所属对象等.例如 public void somemethod(int hour1){    this.hour = hour1;} 或者otherobject.bar(this) 把当前对象传给otherobject 还有就是指示变量属于哪个对象.this.z = 5; 等等.这里不作赘述. c#中还有using关

PHP类和对象之Static静态关键字

静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用.静态属性不允许对象使用->操作符调用. class Car { private static $speed = 10; public static function getSpeed() { return self::$speed; } } echo Car::getSpeed(); //调用静态方法 静态方法也可以通过变量来进行动态调用 $func = 'getSpeed'; $className = 'Car'

C++ 类的多态一(virtual关键字--构造函数深刻理解)

//virtual关键字--构造函数深刻理解 #include<iostream> using namespace std; /* C语言编译器,c++编译器全部是静态链编,就是一段一段代码的编译,不会考虑上下文 例如编译到void ProtectA(Point pin) 编译器就会认为pin就是Point类型, 而不会去联系上下文,去分析pin有没有可能是子类对象 virtual关键字会自动检测这个父类对象有没有是子类对象 */ /* virtual关键字的作用 假设父类中存在用virtua

PHP面向对象——Final关键字 类的自动加载

1.Final关键字 含义:最终的,最后的 作用: 1.如果父类中的方法被声明为 final,则子类无法覆盖该方法. 如果一个类被声明为 final,则不能被继承. 2.属性不能被定义为 final,只有类和方法才能被定义为 final. 用法:直接在类或者方法前加final关键字. --------------------------------------------------------------------------- 2.类的自动加载 含义: 1.解决代码重复,把重复的代码写在一

数据持久化、单例、重载【添加对不可访问的成员的操作】、魔术方法、类常量、static关键字对self的补充【静态延迟绑定实现$this的效果】、参数类型约束【参数前加类名】、遍历【iterator接口】、快速排序

1.数据持久化过程[传输(例如表单提交或php交互mysql)和保存过程] 使用的是字符串形式的流数据. 数据流就是为了传输[按照序列的形式进行传输] [http://baike.baidu.com/link?url=0MtUQMhFzc_EwJc09rXZV8KlfOL4jis6XNbRfmGA3rQhDcGwOp8togLVQjXBV34M] 所以将其他类型数据转化为字符串的过程也是序列化的过程 [这个概念和图片.视频的流媒体的区别?] [注意点] 另外mysql中sql语句中的某些关键词为

php面向对象类中的$this,static,final,const,self这几个关键字使用方法。

php中this,self,parent三个关键字的作用 this,self,parent三个关键字之间的区别,从字面上比较好理解,分别是指这.自己.父亲.我们先建立几个概念,这三个关键字分别是用在什么 地方呢?我们初步解释一下,this是指向当前对象的指针(姑且用C里面的指针来看吧),self是指向当前类的指针,parent是指向父类的指针.我 们这里频繁使用指针来描述,可能是因为没有更好的语言来表达. <?php <span style="color:#ff0000;"