Java正式学习记录3

Day9

面向对象

含义:

  1. 把众多的形同属性和功能的事归为一类(对象->类)
  2. 类是有一个模板,刻画出对象应该有怎么样的属性名和功能(类->对象)
  3. 编写顺序:先写类,再写对象
  4. 类里只有属性和方法(功能)
  5. 对象:现实生活中的实体
  6. 类(class)虚拟的概念
public class Test01 {
	public static void main(String[] args) {
		
		//创建对象
		Person p = new Person();
		
		//设置属性
		p.name = "苏楠";
		p.sex = '女';
		p.age = 18;
		
		//获取属性
		System.out.println(p.name);
		System.out.println(p.sex);
		System.out.println(p.age);
		
		//调用方法
		p.eat();
		p.sleep();
	}
}

person 类

package com.dream.Test01;

//人类
public class Person {

	//属性:成员属性
	String name;
	char sex;
	int age;

	//成员方法
	public void eat(){
		System.out.println(this.name +"吃饭饭");
	}

	public void sleep(){
		System.out.println(this.name + "睡觉觉");
	}
	
	//静态方法
	public static void method(){
		System.out.println("静态方法");
	}
}

以下是底层实现图在这里插入图片描述

内存知识点梳理

  1. 调用方法就在栈内存中开辟空间
  2. 创建对象(xxxx ? = new xxxx())就在堆内存中开辟空间
  3. 字面值常量在常量池中开辟空间
  4. 方法调用完,垃圾回收器会立刻回收掉在栈中开辟的空间
  5. 方法区的字节码文件(xxx.class)只会加载一次

成员变量

成员属性-成员变量

  1. 必须使用对象调用
  2. 位置:在类里,方法外

成员方法:

必须使用对象调用;

局部变量

方法里的变量,系统不会给默认值;

静态方法

用static修饰的方法,直接用类名调用即可如(Arrays.sort)

成员变量 vs 局部变量

  • 成员变量: 类里方法外的变量,创建对象时,系统会有默认值

整数类型:0
浮点类型:0.0
字符类型:’ ’
布尔类型:false
引用类型:null

如下

 -  private String name;
    private int age;
    private  char sex;
    private String studentnun;
  1. 局部变量:方法里的变量,系统不会给默认值

附上图:在这里插入图片描述

重载:

作用:一个类有多个相同功能的方法,就可以使用重载
条件:
  1. 在同一个类里
  2. 方法名相同
  3. 参数列表的个数或者类型不一致
  4. 与返回值无关

构造方法:

  • 特征:与类名(class)同名并且没有返回项
  • 注意:当一个类没有其他或者有参构造方法的时候,系统会默认实现无参构造方.
  • 存在的意义: new对项时,要使用构造方法
  • 好处:创建对象的时候,不用重复写代码## prvivate:私有化
    例子: 有参构造方法:
public fengzhuag() {
    }

    public fengzhuag(String name, int age, char sex, String studentnun) {
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.studentnun = studentnun;
    }

private:私有化

修饰属性:不能让外界调用
修饰方法 :不能让外界调用

封装

  • 步骤1:私有化属性
  • 步骤2:给属性添加方法get\set的方法
  • 好处 1,保护数据。2,可以做其他逻辑判断;
  • 经验:只要是属性,直接封装

例子代码:

class fengzhuag{
    private String name;
    private int age;
    private  char sex;
    private String studentnun;

    public fengzhuag() {
    }

    public fengzhuag(String name, int age, char sex, String studentnun) {
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.studentnun = studentnun;
    }

    public String getName() {
        return name;
    }

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

this:本对象

this.属性(this 调用方法(依据参数类型去自动调用))

this注意:this代表本对象,哪个对象调用此方法,方法中的this就代表哪个对象

分包

基本作用:防止类的重名
项目中的作用:归类(把多个不同类归到一个包下)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值