Java面向对象

2 篇文章 0 订阅
2 篇文章 0 订阅

对象与类的概念;

        对象 : 用来描述现实生活中真实存在的事物

        类 :  定义一系列对象的共性|图纸|模板           

        修饰符 类名{
            //成员变量 : 不被static关键字修饰的方法--> 实例变量
            修饰符 数据类型 变量名 = 赋值;

            //成员方法 : 不被static关键字修饰的方法--> 实例方法
            修饰符 返回值类型|void 方法名(参数列表){
                方法体;
                [return 返回值;]
            }
        }

例如:一个手机类

public class Class001_Phone {
    //成员位置: 类中方法外
    //颜色,品牌,尺寸,价格
    public String color;
    public String brand;
    public double size;
    public int money;

    //打电话
    public void call(){
        System.out.println("从前有一个人长得像电话,出门就被打了!!!!");
    }
}

类的测试:     

         1) 导包 : 指明当前类的位置
            import 包名.类名;
            位置:类的上面
            不需要导包的类:
                        1.java.lang包下的内容
                        2.同包下的类
        2) 创建类型的引用|变量--->创建对象 new具有创建对象能力
            数据类型 变量名 = new 数据类型();
        3) 使用
            引用.成员变量
            引用.成员方法()
        注意:
            跟随对象使用成员

public class Class002_PhoneTest {
    public static void main(String[] args) {
        //1.创建一个手机对象->描述生活中我自己正在使用的这一台手机
        Class001_Phone  p1 = new Class001_Phone();
        //2.成员变量
        p1.color = "白色";
        p1.brand = "华为";
        p1.size = 6.5;
        p1.money = 7000;  //mete40pro

        System.out.println(p1.color);
        System.out.println(p1.brand);
        System.out.println(p1.size);
        System.out.println(p1.money);

        //3.成员方法
        p1.call();
    }
}

构造器: 构造方法 | 构造函数(特殊的方法)

         作用: 为对象初始化信息 (初始化: 第一次赋值) 
         使用: 跟随new一起使用(new第二步所调用的)
        定义:
        修饰符 类名(参数列表){
            方法体;
        }
       注意: 不需要返回值类型,也没有void
                可以根据需要定义return关键字,作用提前结束方法
                构造器的名字与类名保持一致

例如:在类中的使用

public class Class001_Constructor {
    public static void main(String[] args) {
        //先成员对象
        Dog dog = new Dog();
        //new Dog();
        //为对象的成员赋值
        //dog.name = "";
        //dog.type = "";

        dog.lookDoor();

        //创建对象的同时赋值
        new Dog("馒头").lookDoor();

        new Dog("麻团","中华田园犬","斑点").lookDoor();
    }
}
class Dog{
    public String name;
    public String type;
    public String color;

    //空构造: 没有参数的构造器
    public Dog(){
        System.out.println("空构造");
    }
    public Dog(String dogName){
        System.out.println("一个参数构造");
        //把实参接收到的数据赋值给了当前对象的成员变量name
        name = dogName;
    }
    public Dog(String dogName,String dogType,String dogColor){
        System.out.println("三个参数构造");
        //把实参接收到的数据赋值给了当前对象的成员变量name
        name = dogName;
        type = dogType;
        color = dogColor;
    }
    public void lookDoor(){
        System.out.println(name+"正在看家....");
    }
}

特点:

  •  构造器也是特殊的方法,定义多个重载构造器,构造器的名字都与类名保持一致,参数列表不同就能构成重载构造器
  •  如果没有显示的定义构造器,编译器会自动为类提供一个空构造
  •  如果存在显示定义的构造器,编译器不会提供任意构造器

 this 关键字
        指代当前对象(new的对象)-->存储所有指向的对象的地址
        构造器的首行调用本类中的其他构造器       

public class Class001_This {
    public static void main(String[] args) {
        Dog dog = new Dog("斑点波比","萨摩耶","白色");
        dog.show();

        Dog dog2 = new Dog("小白");
        dog2.show();
        System.out.println("dog2的地址"+dog2);
    }
}

class Dog{
    public String name;
    public String type;
    public String color;

    //构造器
    public Dog(){
        System.out.println("空构造");
    }

    public Dog(String name){
        System.out.println("一个参数构造");
        this.name = name;
        System.out.println("this地址" + this);
    }

    public Dog(String name,String type){
        System.out.println("二个参数构造");
        this.name = name;
        this.type = type;
    }

    public Dog(String dogName,String dogType,String dogColor){
        this(dogName,dogType);
        color = dogColor;
        System.out.println("三个参数构造");
    }

    public void lookDoor(){
        System.out.println(name+"正在看家....");
    }
    public void show(){
        String name = "局部的name值";
        //this在成员方法中默认指代当前调用成员方法的对象
        System.out.println(this.name+"-->"+type+"-->"+color);
    }
}

注意:
            1.多个构造器之间不能相互调用,否则无法停止调用
            2.在static修饰的内容中不能使用this

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值