java学习笔记9(面向对象的思想)

1.1 面向对象思想概述

面向过程的语言思想(c):当需要实现一个功能的时候,详细处理每个步骤
面向对象的语言思想(java):当需要实现一个功能时,不关系具体步骤,
举例洗衣服:
面向过程:把衣服脱下来–>找一个盆–>放点洗衣粉–>加点水–>浸泡10分钟–>揉一揉–>清洗衣服–>拧干–>晾 起来
面向对象:把衣服脱下来–>打开全自动洗衣机–>扔衣服–>按钮–>晾起来
区别:
面向过程:强调步骤。
面向对象:强调对象,这里的对象就是洗衣机。
特点:
面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成了指挥者。 面向对象的语言中,包含了三大基本特征,即封装、继承和多态。

1.2 类和对象

类:是一组相关属性和行为的集合,可以看做是一类事物的模拟,使用事物的属性特性和行为特征来描述该类事物
属性:该事物的状态信息;行为:该事物可做什么
类是抽象的,对象是具体的,类是对象的模板,对象是类的实例。

1.3 类的定义

java中用class描述事物:
属性(是什么):在java中叫成员变量
[例如]:int age;
行为(能做什么):在java中叫成员方法
[例如]:public void eat ()
{
}
先写成员变量,再写成员方法;

1.4对象的创建和使用

通常情况下,一个类并不能直接使用,需要根据类创建一个对象,才能使用。

1.导包:也就是指出需要使用的类,在什么位置
import 包名称.类名称;
对于和当前类属于同一个包的情况,可以省略导包语句不写
2.创建
类名称 对象名= new 类名称();
3 使用 分两种情况
使用成员变量:对象名.成员变量名
使用成员方法: 对象名.成员方法名(参数)

public class test{
    public static void main(String[] args)
    {
       Student stu=new Student();
       stu.name="名字";
       System.out.println(stu.name);
       stu.eat();

   }
}

类练习

phone.class
public class phone {
    String brand;
    double price;
    String color;
    public void call(String who)
    {
        System.out.println("给"+who+"打电话");
    }
    public void sendMessage()
    {
        System.out.println("群发短信");
    }
}

demo.class
public class demo {
    public static  void main(String[] args)
    {
        phone one =new phone();
        one.brand="apple";
        one.color="bliac";
        one.price=4999;
        System.out.println(one.brand);
        System.out.println(one.color);
        System.out.println(one.price);
        one.call("mingzi");

    }
}

1.5 一个对象的内存图

图片来源黑马

成员方法保存的是地址值

两个对象使用同一方法

图片来源黑马

两个引用指向同一对象

图片来源黑马

1.6 使用对象类型作为参数

在这里插入图片描述

适用对象类型作为返回值

在这里插入图片描述

1.7 局部变量与成员变量

1 定义的位置不一样【重点】
局部变量:在方法内部
成员变量:在方法的外部,直接写在类当中
2 作用范围不一样【重点】
局部变量:只有方法当中才可以使用,出了方法就不能使用
成员变量:整个类中都可以使用
3 默认值不一样【重点】
局部变量:没有默认值,如果想要使用,必须进行赋值
成员变量:如果没有赋值,会有默认值,规则和数组一样
4 内存位置不一样(了解)
局部变量:位于栈内存
成员变量:位于堆内存
5 生命周期不一样(了解)
局部变量:随着方法进栈而诞生,随着方法出栈而消失
成员变量:随着对象创建而诞生,随诊对象垃圾回收机制而消失

1.8 封装性

四大特征:继承,多态,封装,抽象
封装的体现: 1 方法是一种封装;
2 关键字private是一种封装;
封装就是将一些细节信息隐藏起来,对于外界不可见,将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。

private关键字:
1. private是一个权限修饰符,代表最小权限。
2. 可以修饰成员变量和成员方法。
3. 被private修饰后的成员变量和成员方法,只在本类中才能访问。
使用格式:

private 数据类型 数据变量名;
//用private关键字将需要保护的成员变量进行修饰
//一旦使用了private进行修饰,那么本类当中仍然可以随意访问,但如果超出本类范围将不能使用
//如果要访问那么要在内部设置公有类函数
public class Person
{
   private int age;
   //专门用于向age设置数据
   public void setAge(int num)
   {
       if(num<100&&num>0)
       {
       age=num;
       }
       else
       {
       System.out.println("error");
       }
   }
   //专门用于获取age数据
   public int getAge()
   {
       return age;
   }
}
//间接访问private要有一对get、set函数
person.setAge(20);

private练习

//student java
/*
对于boolean类型要用ismale
*/
public class Student
{
    private String name;
    private int age;
    private boolean male;
    public void setMale(boolean b)
    {
       male=b;
    }
    public void setName(String str)
    {
       name=str;
    }
    public void setAge(int num)
    {
       age=num;
    }
    public boolean isMale()
    {
         return male;
    }
    public String getName()
    {
        return name;
    }
    public int getage()
    {
       return age;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值