Java-类与对象、封装、构造方法-第6节

学习目标:

  • 学会类的创建与使用
  • 从不同角度理解局部变量与成员变量
  • 学会面对对象三大特征的封装特征。

学习内容:

一、类的创建
```
public class Student {
	// 定义成员变量
	String name;
	int age;
	
	// 定义成员方法
	public void sleep () {
		System.out.println("睡觉觉!");
	}
	public void study () {
		System.out.println("学习中!");
	}
	public void eat () {
		System.out.println("吃饭饭!");
	}
}
```
二、类的使用
1、导包
  • import 包名称.类名称
  • 对于和当前类属于同一文件夹中的类,不需要导入
2、创建,格式
  • 类名称 对象名 = new 类名称();
3、使用
  • 使用成员变量:对象名.成员变量名
    • 如果成员变量没有进行赋值,那么将会有和数组一样的默认值
  • 使用成员方法:对象名.成员方法名(参数)
三、局部变量和成员变量
1、定义的位置不一样
  • 局部变量:在方法的内部
  • 成员变量:在方法的外部,只能写在类中
2、作用范围不一样
  • 局部变量:只有在方法中能够使用
  • 成员变量:整个类中都可以使用
3、默认值不一样
  • 局部变量:没有默认值,必须赋值
  • 成员变量:有默认值,和数组规则一样
4、内存位置不一样
  • 局部变量:位于栈内存
  • 成员变量:位于堆内存
5、生命周期不一样
  • 局部变量:随着方法进栈而诞生,随着方法出栈而消失
  • 成员变量:随着对象被创建而诞生,随着对象被回收而消失
PS:
  • 方法的参数是局部变量,调用方法时必定被赋值
四、面向对象的三大特征
1、封装
  • 方法就是一种封装
  • 关键字private也是一种封装
  • private关键字的使用
    • 成员变量加上private关键字的时候,在定义类的外部就不能直接进行访问,需要在定义类时用set,get方法间接进行访问
    • 当成员变量为布尔类型时,set方法不变,get方法变成isXxx方法
  • this的使用:
    • 当局部变量名与成员变量名重复时,将成员变量名变成
      this.成员变量名
  • 构造方法
    • 构造方法是专门用来创建对象的方法
    • 构造方法必须与所在的类名完全一样
    • 构造方法不用写返回值类型,连void都不写
    • 构造方法不能返回一个具体的返回值
    • 如果没有编写构造方法,编译器会默认创建一个什么都不做的构造方法。
    • 构造方法也可以重载
    • 构造方法格式
      public 类名(参数类型 参数名) {
      	构造函数体;
      }
      

学习产出:

1、Person类的创建

package mypackage.day02.demo1;

public class Person {
    public String name;
    private int age;
    public void show() {
        System.out.println("我叫"+name+", 今年"+age+"岁。");
    }
    public void setAge(int num) {
        if (num < 0 || num >100 ) {
            System.out.println("输入了错误的年龄!!!");
        } else {
            age = num;
        };
    }

    public int getAge() {
        return age;
    }
}

2、Student类的创建

package mypackage.day02.demo1;

//java bean
public class Student {
    //成员变量
    private String name;
    private int age;
    //无参数构造函数
    public Student() {
    }
    //全参数构造函数
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //getter与setter函数
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

3、创建对象

package mypackage.day02.demo2;
import mypackage.day02.demo1.Person;

public class DemoPerson {
    public static void main(String[] args) {
        Person one = new Person();
        one.name = "Jim";
        one.setAge(-20);
        one.setAge(20);
        System.out.println(one.getAge());
        one.show();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值