面向对象

面向对象

1.1面向对象
面向对象本质就是基于面向过程:
面向过程:代表语言就C语言
    需求:给定义数组,获取数组中的最大值
     1)创建数组
     2)遍历数组
     3)业务逻辑判断
       假设法(定义一个参照物是最大值)
       遍历数组时候,将后面的元素依次和它比较
       如果后面的元素比它大,后面的元素就是最大值
     4)输出结果...

   面向对象:代表就是Java

1.2面向对象的思想特点:
1)更符合生活中的思想行为习惯
2)将复杂的事情简单化
3)让我们从执行者变成指挥者(角色发送变化了)
1.3 Java语言的面向对象特征: 封装,继承.多态
1.4 Java面向对象语言设计原则:
可以不断的创建对象,使用对象,然后指挥对象做事情
    键盘录入数据:
            Scanner类  ---- 完成对象 的创建以及录入的数据
1.5类与对象
1.5.1类
类---Java中的最基本单元
    描述现实世界事物的属性和行为的集合!
    描述现实世界真是存在的事物:
    
比如
    学生事物
        属性:姓名,年龄,身高,性别
        行为: 学生 主要学习
             学生 可以玩游戏
    
    学生类 (统称)
        将事物的属性-----成员变量(类中,方法外)
                        (name,age,high,gender)

        将事物的行为-----成员方法(方法去掉static)
                                public 有返回值类型 方法名(形式参数列表){
                                        return 结果;
                                }

                             public void 方法名(形式参数列表){
                                     输出...
                              }
       
1.5.2类和对象的关系
对象:应该是指定的某个类中具体的事物
   类是图纸
   对象是图纸对应的汽车
   
    class Student{
        //定义成员变量 (学生事物的属性)
        //定义成员方法(学生事物的行为)
1.5.3测试类
 对象:描述具体事物
        创建对象的格式:
        
        类名 对象名 = new 类名() ;
        Student s = new Student() ;

        //给学生赋值:姓名,年龄,身高,性别
        对象名称.成员变量= 赋值;
        
        //使用学生的行为:访问成员方法
        对象名.方法名() ;
1.6定义学生类
测试类
       主程序---测试学生类
 
          需求:定义一个学生类,
          学生有属性:姓名,年龄,性别,身高              类(成员变量)
          学生有行为:学习JavaSe                       类(功能)
学生类
class Student{

    //成员变量----描述 ----学生事物的属性:
    //位置:类中,方法外
    String name ;//姓名
    int age ;//年龄
    int high ;//身高
    String gender ;//性别


    //成员方法(去掉static)
    //学生只要学习
    public void study(){
        System.out.println("学生主要目前在学习JavaSE...") ;
    }


    //玩游戏
    public void playGame(String gameName){
        System.out.println("学生学习累了,可以玩"+gameName+"游戏");
    }

}
测试类
//测试类
public class StudentTest {

    public static void main(String[] args) {
        //测试定义好的学生类
        //描述属性: 学生--姓名:高圆圆  年龄:23  身高:180  性别:女
        //测试学生的行为:study() ,playGame(String name) ;

        /**
         *
         *  类名 对象名 = new 类名() ;
         *
         *   //给学生赋值:姓名,年龄,身高,性别
         *         对象名称.成员变量= 赋值;
         *         //使用学生的行为:访问成员方法
         *         对象名.方法名() ;
         */
        //创建一个具体的学生对象:
        Student student = new Student() ;

       // System.out.println(student) ; //com.qf_03_student.Student@1540e19d
        System.out.println(student.name+"----"
                +student.age+"-----"+student.high+"-----"+student.gender) ;

        //描述属性: 学生--姓名:高圆圆  年龄:23  身高:180  性别:女
        student.name = "高圆圆";
        student.age = 23 ;
        student.high = 185 ;
        student.gender ="女" ;
        System.out.println("学生的姓名是:"+student.name+
                ",年龄是"+student.age+"岁,身高是"+student.high+"cm,性别是"+student.gender) ;
        System.out.println("---------------------------------") ;

        //测试学生的行为
        //对象名称.成员方法名();
        student.study();
        student.playGame("王者农药");
    }
}
1.7局部变量和成员变量的区别
1)在类中书写的位置不同的
局部变量:方法定义中或者方法声明上
成员变量:类中,方法外

2)内存中的位置位置不同的
局部变量:在栈内存中
成员变量:在堆内存中

3)生命周期不同
局部变量: 随着方法调用而存在,随着方法调用完毕而消失
成员变量: 随着对象的创建而存在,随着对象的创建完毕,等待垃圾回收器回收掉(空闲的时候)之后,消失掉(不会立即消失)

4) 初始化不同
局部变量:必须要在使用之前赋值,不赋值,就报错(当前变量可能尚未初始化)
成员变量:系统会 根据当前成员变量的数据类型,系统初始化
可以不赋值的
class Variable{
    //成员变量:类中,方法外
    int numer  = 100;
    int x ;

    public void show(String s){ //s局部变量 :方法声明上
        //int a = 100 ; //方法定义中
        int a ;
        a = 100;
        System.out.println(a+s);
      //  System.out.println(numer);

    }
}

//测试类
public class VariableDemo {

    public static void main(String[] args){
        //需求:访问Variable类的show方法
        //创建Variable类对象
        Variable v = new Variable() ;
        v.show("hello");

        System.out.println("------------------------") ;
        System.out.println(v.numer); //对象名.访问成员变量;
        System.out.println(v.x);
    }
}
1.8形式参数是 基本数据类型 或 引用数据类型
形式参数如果是  基本数据类型,  形参的改变不影响实际参数;
形式参数如果是  引用类型,  传递的是一个类,-----形参的改变直接影响实际参数;
特殊:
   String类 作为形参传递,效果和基本数据类型作为形式参数传递是一样的                                                                 形参的改变不影响实际参数 ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值