一个小时搞定JAVA面向对象(2)——类与对象

面向对象

基本属性

成员变量与局部变量

简单来说对象的属性就是成员变量。

成员变量与局部变量的区别

定义的位置不同:

  1. 成员变量:类中,方法外
  2. 局部变量:定义在方法中

初始化值不同:

  1. 成员变量:有默认值
  2. 局部变量:没有默认值

作用范围不同:

  1. 成员变量:作用于整个类
  2. 局部变量:只作用于自己所在的方法

内存位置不同(了解)

  1. 成员变量:在堆中,跟着对象走
  2. 局部变量:在栈中,跟着方法走

生命周期不同(了解)

  1. 成员变量:随着对象的创建而产生,随着对象的消失而消失
  2. 局部变量:随着方法的调用而产生,随着方法的调用完毕而消失

匿名对象

学习匿名对象之前,先引用一个例子:

Person p = new Person()
  a.等号左边的Person:对象的类型,好比是int   
  b.p:对象名
  c.等号右边的new Person():真正的数据,是一个Person对象,将这个对象真正创建出来了 

所谓的匿名对象:其实就是没有等号左边的部分,只有等号右边的部分(对象).

格式: new 对象().成员

匿名对象的特点:

  1. 对象只会被使用一次,作为调用者来说,之后就获取不到这个对象了。
  2. 如果对象只需要使用一次的话,那么我们就可以使用匿名对象
  3. 匿名对象一旦使用完成就会自动释放,节约内存资源
  4. 作为实际参数的时候比较方便

使用方法:

  1. 如果单纯调用一个方法的话,可以考虑使用匿名对象
  2. 如果涉及到赋值,就不能使用匿名对象
//案例理解:
public class Person {
    String name;
    public void eat(){
        System.out.println("人要吃饭");
    }
}

public class Demo01Person {
    public static void main(String[] args) {
        //原始方式
        Person p = new Person();
        p.name = "金莲";
        System.out.println(p.name);
        p.eat();

        System.out.println("=================");

        //匿名对象
        new Person().eat();
        
        new Person().name = "大郎";//如果涉及到赋值,就不能使用匿名对象
        System.out.println(new Person().name);//null
    }
}

成员方法

简单来说对象的行为就是成员方法。

public class Person{
    //属性——>成员变量
    String name;
    int age;
    
    //行为——>成员方法
    public void eat(){
        sout("吃饭吃饭!");	//我这里为了简便就直接sout代表System.out.println(""),实际运行的时候需要写全代码!!!
    }
    public void drink(){
        sout("喝水喝水!");
    }
}

类 class

类:就是一类实物的抽象表示方式,类似于事件万物的分类,例如:人类、狗类、猫类

组成部分:

  1. 属性(成员变量):表示这一类实物有啥
    • 定义在类中的方法之外
    • 作用范围是当前类
    • 定义格式:数据类型+变量名
    • 自带默认值,所以没有初始化也是可以
  2. 行为(成员方法):表示这一类实物能干啥
    • 定义格式:public void 方法名( )

对象

对象:一类事物的具体体现

使用方法:

1. 通过`import`导包。
2. 创建对象:想要使用哪个类中的成员,就`new`哪个类的对象
- 定义格式:类名 对象名 = new 类名( )
3. 调用成员(成员变量,成员方法):想要使用哪个对象的成员,就用哪个类的对象去点(`.`)哪个成员
- 对象名.成员变量名 = 值
- 对象名.方法名 (可以放入`实参`)【调用 无参/有参 无返回值方法】
- 数据类型.变量名 = 对象名.方法名(可以放入`实参`)【调用 无参/有参 有返回值方法】
//代码案例
public class Person{
    //属性——>成员变量
    String name;
    int age;
    
    //行为——>成员方法
    public void eat(){
        System.out.println("吃饭吃饭!");	//我这里为了简便就直接sout代表System.out.println(""),实际运行的时候需要写全代码!!!
    }
    public void drink(){
        System.out.println("喝水喝水!");
    }
}
//测试类
public class PersonOne{
    public static void main(String []args){
        Person p1=new Person();
            p1.name="张三";
            p1.age=20;
            System.out.println(p1.name);
            System.out.println(p1.age);
        p1.eat();
        p1.drink();
    }
}
//代码实例2——理解带参数以及有返回值
public class Phone{}
//属性
String brand;//品牌
String color;//颜色
    intprice;//价格
    //行为public void call(String name){System.out.println("给"+name+"打电话");1usagepublic String message(){return“给金莲发短信”;
//测试类
public class Demo02Phone{
    public static void main(String[]args){
    Phone phone=new Phone();
        phone.brand="苹果";
    	phone.color="黑色";
    	phone.price=7999;	
        
        System.out.println(phone.brand);
        System.out.println(phone.color);
        System.out.println(phone.price);
    phone.call(name:"张三");
    String messphone.message();
    System.out.println(mess);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值