学习java第五天

类和对象

相关概念

  • 对象特征
  1. 封装

  2. 继承

  3. 多态

  • 类:是一组相关属性和行为的集合

  • 关系:类是事物的描述是抽象的,对象是事物的实例是具体的,类是对象的模板,对象是类的实体

定义

public class ClassName{
    //成员变量
    //成员方法
}

调用

  1. 一个类不能直接使用,需要创建一个对象才能使用
  2. 调用方法:
    • 导包:import 包名称.类名称 //当调用的类和当前类在同一个包内则可以不写
    • 创建:类名称 对象名 = new 类名称();
    • 使用:对象名.变量名(方法名)
内存变化
  • (一个对象调用一个方法)

在这里插入图片描述

  • (两个对象调用同一个方法)
  1. new两个对象

在这里插入图片描述

  1. new一个对象,复制给令一个对象

在这里插入图片描述

类作为参数(传递地址值)

在这里插入图片描述

类最为返回值

在这里插入图片描述

局部变量&成员变量

  1. 区别:

    • 定义位置不同:局部变量在方法内部,成员变量在方法外部直接写在类中
    • 作用范围不同:局部变量只有在方法中才可以使用,成员变量在整个类全可以使用
    • 默认值不同:局部变量没有默认值必须手动初始化,成员变量有默认值规则和数组一样
    • 内存位置不同:局部变量在栈,成员变量在堆
    • 生命周期不同:局部随方法进栈而存在,随方法出栈而消失;成员变量随对象创建儿存在,随对象回收而消失
  2. 注意点

public void method(int num){
    System.out.printlin(num);
    //方法的参数为局部变量,参数在被方法调用前必然会被赋值
    //例:method(123)或method(nums),nums定义在方法外为成员变量
    int age;
    System.out.printlin(age);//错误,age为局部变量,未被赋值无法使用
    
}

封装

  1. 体现:

    • 方法就是一种封装
    • 关键字private也是一种封装
  2. 本质:将一些细节信息隐藏起来对外界不可见

  3. private使用:

//例:当有人输入年龄时为负数时我们是无法处理的,所以引入私有成员利用接口函数进行处理

public class Phone {
    String brand;
    private int price;
    
	public void init(Phone one){
        one.brand="华为";
        one.price=1200;
    }
    public void initPrice(int num){ //不必传类名
        if (num>0&&num<100000){
            price=num;//成员赋值
        }else{
            System.out.println("请输入正确的数");
        }
    }
    public void  getPrice(){
        System.out.println(brand+"价格为"+price);
    }
}
public class Dome02 {
    public static void main(String[] args) {
        Phone phone=new Phone();

        //phone.price 错误
        phone.init(phone);
        phone.initPrice(20);
        phone.getPrice();
    }
}

this(用于解决局部变量和成员变量同名)

public class Person {
    String name="wang";
    public void call(String name){
        //当 name=li时     li 和  li  打招呼
        //System.out.println(name+"在和"+name+"打招呼");
        System.out.println(this.name+"在和"+name+"打招呼");
        //wang 和 li 打招呼
    }
}

构造

  1. 构造方法:
public 类名称(参数类型 参数名称){
    方法体
}
  1. 注意:

    • 构造方法名和类名一致
    • 构造方法无返回值且不写void
    • 构造方法不能返回具体值
    • 编译器默认赠送一个构造,若有其他构造,编译器不在赠送
    • 可以有多个构造
  2. 有参构造和无参构造:

    • 构造方法有参数为有参构造
    • 构造方法无参数为无参构造

标准类

组成部分:

  1. 所有成员变量都要使用private关键修饰
  2. 为每个成员编写一对Getter/Setter方法
  3. 编写一个无参构造
  4. 编写一个有参构造

IDEA扩展

  1. 移动代码:shift+alt+上下键

  2. 自动生成Getter/Setter方法:code ->Generate->选择Getter/Setter->ok

量都要使用private关键修饰
2. 为每个成员编写一对Getter/Setter方法
3. 编写一个无参构造
4. 编写一个有参构造

IDEA扩展

  1. 移动代码:shift+alt+上下键

  2. 自动生成Getter/Setter方法:code ->Generate->选择Getter/Setter->ok

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值