JAVA基础--面向对象

1.类和对象

类:
	java中类是对具有共同属性(名词)和共同行为(动词)的一类事物的描述。


对象:
	对象是类的具体体现。

学生类的创建:

package com.itheima01;
//学生类
public class Student {
    //成员变量
    //姓名
    String name;
    //性别
    String sex;
    //年龄
    int age;

    //成员方法
    //吃饭
    public void eat(){
        System.out.println("学生都是干饭人!");
    }
    //学习
    public void study(){
        System.out.println("学生键盘敲烂 月薪过万!");
    }
}


package com.itheima01;

public class Demo02 {
    public static void main(String[] args) {

        //创建对象
        Student s = new Student();

        //赋值
        s.name = "马冬梅";
        s.sex = "女";
        s.age = 32;

        System.out.println("ta的姓名是" + s.name + "ta的年龄是" + s.age);

        //调用方法
        s.eat();
        s.study();
    }
}

2.对象的内存图

2.1一个对象的内存图

在这里插入图片描述

2.2两个对象的内存图

在这里插入图片描述

2.3两个变量指向一个对象内存图

在这里插入图片描述

3.成员变量和局部变量的区别

定义位置不同:【最重要的区别】
	成员变量:定义在类中方法外的变量
	局部变量:定义在方法中的变量
	
内存位置不同:
	成员变量:存储在堆内存使用
	局部变量:存储在栈内存使用
	
生命周期不同:
	成员变量:随着对象的创建而产生,随着对象的消失而消失
	局部变量:随着方法的调用而产生,随着方法的结束而消失
	
默认值不同:
	成员变量:有默认值,如果不赋值有默认值
		整数--->    0
		小数--->    0.0
		字符--->    空字符
		布尔--->    false
		其他所有---> null
 	局部变量:没有默认值,如果不赋值就不能输出

4.封装

4.1private
含义?
	私有的
修饰什么?
	修饰成员变量和成员方法
加了有什么用?
	被private修饰之后,只能在本类中直接访问,不能在其他类中直接访问

封装的好处?
	提高代码的安全性
	private是一种封装,封装不只有private
		
4.2set方法和get方法
set方法:
	给成员变量赋值
get方法:
	获取成员变量的值
	
每个变量只要被private修饰了,就需要给一个变量提供两个方法
4.3this
this的作用:
	1.在成员变量和局部变量重名的情况下,this.变量名代表的是成员变量
	2.this可以代表本类的对象,哪个对象调用方法,方法中的this就代表哪个对象(现在用不到,以后会用到)

5.构造方法

1.构造方法在什么时候调用?
	构造方法是在创建对象的时候调用
	有参构造方法可以在创建对象的时候,同时给成员变量赋值(初始化值)
	
2.构造方法的格式:
	public 类名(){
        
	}
	
3.构造方法的特点:
	1.构造方法方法名和类名一致
	2.构造方法没有返回值类型
	3.构造方法也可以写return,只不过后面不能跟值
	4.构造方法也可以重载
	
	
4.构造方法的注意事项:
	1.当一个类中不写构造方法时,系统会默认提供一个空参构造
	2.当类中写了构造方法时,系统就不会再默认提供空参构造

6.最终的标准类

package com.itheima03;

//学生类
public class Student {
    //姓名
    private String name;
    //性别
    private String sex;
    //年龄
    private int age;

    //构造方法
    public Student() {
    }

    public Student(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    //set  get

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

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


    //成员方法
    //吃饭方法
    //  马冬梅正在吃刀削面
    public void eat(String food){
        System.out.println(name + "正在吃" + food);
    }
}

public class Demo02 {
    public static void main(String[] args) {

        //创建学生对象
        Student s1 = new Student();
        s1.setName("马冬梅");
        s1.setSex("女");
        s1.setAge(18);

        //打印
        System.out.println(s1.getName() + " " + s1.getAge());


        //创建学生对象
        Student s2 = new Student("马冬梅","女",20);
        s2.eat("刀削面");
        s2.eat("包子");

        //打印
        System.out.println(s2.getName() + " " + s2.getAge());


        //set方法赋值    和构造方法赋值  功能上感觉一样
        //两种写法都要留下
        //我们自己写代码时可以哪个简单用哪个
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值