zoukankan      html  css  js  c++  java
  • Java : 类与对象(一)

    Java:类与对象(二)

    类与对象

    关于类与对象,有下面一些话需要理解

    • 对象=属性+方法,对象拥有一些属性,可以对对象进行一些操作(方法)

    • 类是对对象内容、方法的声明、定义及初始化

    • 类是创建对象的模板

    • 对象变量是对象的管理者,而不是所有者

    • 写在类里的成员变量,仅仅只是声明,变量不在类里,变量在每一个对象里


    • 成员变量
      成员变量与本地变量十分相似
      成员变量的生存期是对象的生存期,作用域是类内部的成员函数。
      成员变量会自动初始化为“零”值,比如 类型为 boolean 时,初始化为false,如果是一个对象变量则初始化为null。

    • 方法(函数)
      在类中进行定义,属于该类的对象可以根据定义来使用这样的方法,这些方法作用于调用他的对象

    • 构造函数
      构造函数没有返回类型
      成员函数的名字和类的名字完全相同,那么在创建这个类的对象时会自动调用这个函数,在初始化完成员变量后(这保证了我们可以在构造函数中初始化成员变量)
      构造函数也确确实实是一个函数,可使用重载特性


    对象

    制造对象,即将类中的声明实体化
    类是制造对象的模板
    对象可以调用所在类中的方法


    实例

    import java.lang.*;
    import java.util.*;
    
    class student {
        public String name;
        public int[] score = new int[5];
        public String stunum;
    
        public void setName(String name) {
            this.name = name;
        }//此处this.表示该变量"name"是对象中的name变量,而后面
         //一个"name"则是方法的参数"name"
    
        public void setStunum(String stunum) {
            this.stunum = stunum;
        }
    
        public void print() {
            System.out.print(name);
            for (int k : score) {
                System.out.print(k);
            }
            System.out.println(stunum);
        }
      //构造函数 当我们制造一个对象时可以调用 class  obj = new class()
        student() {
            for (int i = 0; i < 5; i++) {
                score[i]=i;
            }
        }
    
        student(int a){
            this();//调用student()
            score[0]=a;
        }//函数重载
         //本例中根据制造对象时所传参数选择执行哪个构造函数
    
        student(char a){
            this(5);//调用student(int a)
            score[0]=a;
        }
    //构造函数因为与类同名,相当于没有自己的名字,构造函数
    //重载时可且仅可在第一句通过this();根据参数调用其他
    //构造函数
    }
    
    public class Main {
        public static void main(String[] args) {
            String a="abc";
            student stu1 =  new student();
            stu1.setName("王等闲");
            stu1.print();
            student stu2 = new student(5);
            stu2.print();
            student stu3 = new student(a);
            stu3.print();
            stu3.name=stu3.name.toUpperCase();
            stu3.print();
        }
    }
    //输出为    
    王等闲01234null
    null51234null
    abc51234null
    ABC51234null

    封装

    封装:把属性和方法(对属性的操作)放在一起组成类,并且用这些操作把属性掩盖起来,封装是面向对象的基本概念之一

    封装

    保证在类的设计的时候做到封装:

    • 所有的成员变量必须是private的,这样就避免别人任意使用你的内部数据;
    • 所有public的函数,只是用来实现这个类的对象或类自己要提供的服务的,而不是用来直接访问数据。除非对数据的访问就是这个类及对象的服务。简单地说,给每个成员变量提供一对用于读写的get/set函数也是不合适的设计。

    理解OOP特性:

    • 一切都是对象
    • 程序就是相互发送消息的对象的集合
    • 每个对象都有自己的存储空间,里面是其他对象
    • 每个对象都有一个类型
    • 所有属于某个特定类型的对象可以使用相同的方法

    2018/5/29

  • 相关阅读:
    Java多线程总结(二)锁、线程池
    Java多线程总结(一)多线程基础
    如何创建并运行java线程
    Java高效计数器
    在JLabel上显示图片,并且图片自适应JLabel的大小
    用java读写ini配置文件
    Java读取ini配置
    JAVA – 虚函数、抽象函数、抽象类、接口
    Java UDP Socket
    18、面向对象基本原则及UML类图简介
  • 原文地址:https://www.cnblogs.com/kafm/p/12721865.html
Copyright © 2011-2022 走看看