JAVA-3.2-认识面向对象

一:面向对象思想
1.1:面向过程思想
  一步一步的完成某个需求。这些步骤是我们要完成的。侧重于过程。
  代表性语言:C语言
1.2:面向对象思想—指挥对象做事情
  面向对象是基于面向过程的。
  关注完成功能的类。侧重于结果。
  代表性语言:Java语言
1.3:面向对象思想特点
  面向对象是基于面向过程的编程思想
    A:是一种更符合我们思想习惯的思想
    B:可以将复杂的事情简单化
    C:将我们从执行者变成了指挥者

二:类与对象
2.1:我们学习编程语言,就是为了模拟现实世界的事物,实现信息化。
2.2:我们是如何描述现实世界的事物的呢?
  属性 就是该事物的描述信息(举例,人,汽车)
  行为 就是该事物能够做什么(举例,人,汽车)
    例如:
       人:(类)
       属性:姓名,性别,年龄
       行为:吃,睡,学习
2.3:类与对象
我们学习的Java语言最基本单位是类,所以,我们就应该把事物用一个类来体现。
  类:是一组相关的属性和行为的抽象
  对象:是该类事物的具体体现。(实例)
  
三:类的定义
3.1类是用来描述现实世界事物的。
  事物:
    属性 特征
    行为 功能
  类:
    成员变量 特征
    成员方法 功能
  类的组成:
    成员变量 类中方法外的变量
    成员方法 没有static修饰的方法
3.2成员变量和局部变量的区别?
  A:在类中的位置不同
    成员变量 类中方法外
    局部变量 方法内或者方法声明上
  B:在内存中的位置不同
    成员变量 堆内存
    局部变量 栈内存
  C:生命周期不同
    成员变量 随着对象的存在而存在,随着对象的消失而消失
    局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
  D:初始化值
    成员变量 有默认初始化值
    局部变量 没有默认初始化值
    
四:类的使用
4.1 一个文件一个类
4.2我们要想想用一个类的成员,就必须创建该类的对象。如何创建类的对象呢?
    格式:
      类名 对象名 = new 类名();
      就表示创建了该类类型的一个对象
    如何使用成员呢?
      成员变量:
        对象名.变量;
      成员方法:
        对象名.方法名(…);
4.3定义一个学生类,并在Test类中进行测试:

package com.edu_05;
public class Student {
    //学生的成员变量(类中方法外)
    String name;
    int age;
    //成员方法(没有static修饰)
    public void eat(){
        System.out.println("学生爱吃米饭");
    }

    public void study(){
        System.out.println("吃饱了该学习了");
    }

    public void makePlane(){
        System.out.println("学生会制造飞机模型");
    }
}

同包下,新建Test类,对Student类进行测试:

package com.edu_05;
/**
 * 一个文件一个类
 */
public class Test {
    public static void main(String[] args) {
        //创建一个学生对象
        //类名   对象名 = new 类名();
        Student s = new Student();
        /**
         * 想使用一个类,必须先创建该类的一个对象
         * 一旦new了一个对象(如Student s = new Student();)
         * 就会直接在堆内存中开辟空间
         */
        //打印一下这个学生对象的姓名和年龄
        System.out.println(s.name);//null
        System.out.println(s.age);//0

        //给学生对象的姓名和年龄赋值
        s.name = "张三";
        s.age = 50;

        System.out.println(s.name);//张三
        System.out.println(s.age);//50

        //试用一下学生的成员方法
        s.eat();
        s.makePlane();
        s.study();
    }
}

五:形式参数问题
数据类型:基本类型:4类8种。byte,short,int,long,float,double,char,boolean
基本类型实际参数传递的时候传递的是这个基本类型的具体的值
  引用类型:类,接口,数组
  引用类型进行参数传递的时候,传递的是该引用类型的(实例对象)说白了就是这个对象的地址值
  
六:匿名对象:就是没有名字的对象、是对象一种简写形式。
  应用场景:
      A:调用方法(对象调用方法仅仅一次的时候)
      B:作为实际参数传递

package com.edu_09;
class Student{
    public void show(){
        System.out.println("student的show方法");
    }
}

class StudentDemo{
    public void method(Student s){
    //需要的实际参数一定是Student类的对象的的地址值
        s.show();
    }
}

public class StudentTest {
    public static void main(String[] args) {
        //我现在需要调用StudentDemo中的method()方法
        //使用匿名对象调用方法,并传递参数
        new StudentDemo().method(new Student());    
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值