Java面向对象

面向对象

类是模子,确定对象将会拥有的特性(属性)和行为(方法)

对象是类的实例表现,类是对象的类型,对象是特定类型的数据

面向对象:关注现实存在的事物的各方面的信息,从对象的角度出发,根据事物的特征进行程序设计

对象:用来描述客观事物的一个实体

类:具有相同属性和方法的一组对象的集合

属性和方法

属性:对象具有的各种静态特征,“对象有什么”

方法:对象具有的各种动态行为,“对象能做什么”

 

类---抽象的概念,模板

对象---一个看得到,摸得着的具体实体

 

实例化对象

实例化对象的过程可以分为两部分:

声明对象 Cat one(栈)

实例化对象 new Cat()(堆)

 

构造方法

也称构造函数,构造器

1、构造方法与类同名且没有返回值

2、构造方法的语句格式

public 构造方法名(){

      //初始化代码

}

  • 只能在对象实例化的时候调用
  • 当没有指定构造方法时,系统会自动添加无参的构造方法
  • 当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法
  • 一个类中可以有多个构造方法

 

类和对象

定义类

public class 类名{

//定义属性部分

【访问修饰符】数据类型 属性名;

//定义方法部分

【访问修饰符】返回类型 方法名(参数){

}

}

创建并引用对象

类名 对象名=new 构造方法();

对象名.属性

对象名.方法名()

成员属性的初始值

byte

0

short

0

int

0

long

0L

float

0.0f

double

0.0d

char

'\u0000'

boolean

false

引用类型对象的初始值是null

this关键字

this:当前对象的默认引用

this的使用

1、 调用成员属性,解决成员属性和局部变量同名冲突

image.png

2、 调用成员方法

image.png

3、调用重载的构造方法

image.png

通过this()调用构造方法,必须放在方法体内第一行

代码

package com.doke;
/**
 * 宠物猫类
 * @author 大聪聪
 *
 */
public class Cat {
    //成员属性:昵称,年龄,体重,品种
    String name;//昵称 String类型默认值null
    int month;//年龄 int类型默认值0
    double weight;//体重 double类型默认值0.0
    String species;//品种
    
    public Cat() {
        System.out.println("我是无参构造方法");
    }
    public Cat(String name) {
        this();
        System.out.println("我是带参构造方法");
    }
    public Cat(String name,int month,double weight,String species) {
        this.name=name;
        this.month=month;
        this.weight=weight;
        this.species=species;
    }
    
//  public void Cat() {
//      System.out.println("我只是一个普通方法,恰好方法名叫Cat");
//  }
    
    //成员方法:跑动,吃东西
    //跑动的方法
    public void run() {
//      int age;
        this.eat();//eat();也可以
        System.out.println("小猫快跑");
//      System.out.println(age);//定义了没有赋值无法输出
    }
    public void run(String name) {
        System.out.println(name+"快跑");
    }
    
    //吃东西的方法
    public void eat() {
        System.out.println("小猫吃鱼");
    }
}
package com.doke;

//单一职责原则
public class CatTest {
    public static void main(String[] args) {
        //对象实例化
        Cat one = new Cat("花花",2,1000,"英国短毛猫");
        Cat two = new Cat("花花");
//      Cat two =new Cat();
//      Cat two=one;
        Cat one;//声明对象
//      //测试
        one.run();
        one.eat();
//      one.name="花花";
//      one.month=2;
//      one.weight=1000;
//      one.species="英国短毛猫";
//      two.name="凡凡";
//      two.month=1;
//      two.weight=800;
//      two.species="中华田园猫";
//      
        System.out.println("昵称: "+one.name);
        System.out.println("年龄: "+one.month);
        System.out.println("体重: "+one.weight);
        System.out.println("品种: "+one.species);
        one.run(one.name);
//      System.out.println("-----------------");
//      System.out.println("昵称: "+two.name);
//      System.out.println("年龄: "+two.month);
//      System.out.println("体重: "+two.weight);
//      System.out.println("品种: "+two.species);
        
        one.run();
//      one.Cat();
//      one.eat();
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值