Java类和对象

Java—面向对象—类和对象

面向对象思想:强调对象解决问题。角色:指挥者和调度者。

面向过程思想:强调的是过程。 角色:执行者。

Java面向对象的设计思想。万物皆对象。

一、类和对象

​ Java中使用类来描述事物对象。

  1. 事物(特征):

    1. 属性特征:状态
    	2. 行为特征:功能
    
  2. 类:对事物的属性和行为特征的封装描述,类是抽象的描述。

    1. 类的创建:对事物属性和行为的抽象描述(对类的封装):

      1. 成员变量(属性);
      2. 成员方法(功能);
    2. 格式:

      1. 修饰符 class 类名{

        ​ //成员属性

        ​ 格式 变量的声明格式雷同——>数据类型 变量名;

        ​ //成员功能

        ​ 格式 同语法方法格式(去掉static)——>数据类型 方法名(参数列表){方法体;}

        }

        class student{
            String name;//姓名
            String ID;//学号
            String sex;//性别
            int age;//年龄
            double weight;//体重
           public void study(){
               this.name=name;
               System.out.println(name+"正在学习");
           }
           public void sloop(){
               System.out.println("正在睡觉");
           }
           public double getWeight(){
                return weight;
            }
        }
        
    3. 类和对象:

      1. 类:抽象的,对事物的描述;
      2. 对象:具体的实实在在存在的实体事物。
      3. 类中的属性和行为,对应的对象都因该具备。
  3. 类和对象的使用:

    java中通过类创建对象来使用:通过new关键词来使用。

    1. 对象的创建:

      student yp=new student();
      
    2. 对象的使用;

      成员属性的使用:引用变量.成员属性

      成员方法的使用:引用变量.成员方法名

      通过点运算符进行调用;

      yp.getWeight()
      
    3. 对象赋值:

      对象名.属性=value;

      yp.name="zangsan";
      
    4. 局部变量和成员变量

      1. 局部变量:定义在方法中、参数上、代码中的变量称为局部变量;

      2. 成员变量:定义在类的里面方法的外面;

      3. 差异:

        1. 定义位置不同

        2. 生命周期不同

        3. 运行时所处位置不同

        4. 使用方式不同:局部变量必须有初始值才可以使用

    5. 对象的构造方法:

      1. 在java中通过类创建对象都要经过构造方法来创造对象实例;构造方法可以有多种,称为方法重载;

      2. 在类中如果没有自定义构造方法,则系统会给我们附送一个无参的构造方法;若自定义了构造方法则系统不在附送无参构造方法。

      3. 意义:创建对象实例,并完成对象实例的初始化;

      4. 构造方法特点:

        1. 构造方法没有返回值。

        2. 必须和类名同名。

        3. 构造方法可以自定义

          /*全参构造方法*/
          public student(String name,String ID,String sex,int age,double weight){
             this.name=name;//this代表当前类的实例对象
             this.age=age;
             this.ID=ID;
             this.sex=sex;
             this.weight=weight;
          }
          
      5. this:

        1. 代表本类对象

        2. 当局部变量名称和成员变量同名是使用this来进行区分。

    6. 构造方法创建对象过程:

      1. 加载主类public修饰的类;
      2. main方法入栈
      3. 执行第一条语句。加载类到方法区。——>student yp=new student() 加载student.class到方法区;
      4. 在栈区分配Student yp对象变量的存储空间;
      5. 在对中分配对象的物理空间,同时Student()构造方法入栈;
      6. 默认初始化,并构造初始化方法出栈(弹栈)对象初始化完毕
      7. 将堆中对象的物理地址付给栈中的对象yp;
    7. 注意:对象在初始化出来之后都会有默认话的值;

      package JavaSE;
      import java.lang.reflect.Array;
      import java.util.Arrays;
      import java.util.Scanner;
      public class objectDemo {
          public static void main(String[] args) {
              Scanner scan=new Scanner(System.in);
              /*student yp=new student();
              System.out.println("请输入学生姓名:");
              yp.name="李四";
              System.out.println("学生姓名:"+yp.name);
              System.out.println();*/
              System.out.println("=======================================================");
              student gao=new student("王五","21330220000","男",23,120);
              System.out.print("请输入要查询的信息:");
              String name=scan.toString();
              System.out.println("学生姓名:"+gao.name);
              System.out.println("学生学号:"+gao.ID);
              System.out.println("学生性别:"+gao.sex);
              System.out.println("学生年龄:"+gao.age);
              System.out.println("学生姓名:"+gao.weight);
      
      
          }
      }
      
      package JavaSE;
      
      public class object {
      
      }
      class student{
          String name;//姓名
          String ID;//学号
          String sex;//性别
          int age;//年龄
          double weight;//体重
      
          public void study(){
             System.out.println(name+"正在学习");
         }
         public void sloop(){
             System.out.println(name+"正在睡觉");
         }
         public double getWeight(){
              return weight;
          }
          /*无参构造方法*/
         /* public sdtuent(){
      
          }*/
          /*全参构造方法*/
          public student(String name,String ID,String sex,int age,double weight){
             this.name=name;//this代表当前类的实例对象
             this.age=age;
             this.ID=ID;
             this.sex=sex;
             this.weight=weight;
          }
      }
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值