Java- 基本封装

package test.studet_manager;

public class Student {
    static int num = 100;
    // 编号-->唯一的
    private  int number = -1;
    //姓名
    private String name = "";
    //性别
    private String sex = "";
    //年龄
    private int age = -1;
    //班级
    private String grade = "";
    //成绩
    private int score = -1;

    /*
     *  set和 get的方法
     */
    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSex() {
        return sex;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        // 年龄必须大于零
        if (age>=0) {
            this.age = age;
        }

    }

    public int getAge() {
        return age;
    }

    public void setGrade(String grade) {

        this.grade = grade;
    }

    public String getGrade() {
        return grade;
    }

    public void setScore(int score) {
        if (score >= 0) {
            this.score = score;
        }

    }

    public int getScore() {
        return score;
    }

    public void setNumber(int number) {
        this.number =this.number+0;
    }
    public int getNumber(){
        return number;
    }

    public Student() {
        // TODO Auto-generated constructor stub
        ++num;
        this.number = num;
    }
    public  Student(int number,String name,String sex,int age,String grade,int score) {
        getNumber();
        getName();
        getSex();
        getAge();
        getGrade();
        getScore();
    }
    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return ""+this.number+"  "+this.name+"  "+this.sex+"  "+this.age+"  "+this.grade+"  "+this.score+"\n";
    }

    @Override
    public boolean equals(Object obj) {
        // TODO Auto-generated method stub
        // 判断要比较的对象是不是null
        if (obj == null) {
            return false;
        }
        //判断要比较的对象是不是自己本身
        if (obj == this) {
            return true;
        }
        // 判断要比较的对象是不是同一类型
        if (obj instanceof Student) {
            Student student = (Student)obj;
            return student.number==this.number&&student.name==this.name&&student.sex==this.sex&&student.age==this.age&&student.grade==this.grade&&student.score==this.score;
        }
        return false;
    }
    @Override
    // 注意:hashCode方法与equals方法中的属性必须一致
    public int hashCode() {
        // TODO Auto-generated method stub
        return this.number-this.name.hashCode()-this.sex.hashCode()-this.age-this.grade.hashCode();
    }
    // 写一些自身的方法
    public void learn() {
        System.out.println(this.name+"在学习计算机语言");
    }
}
时间: 2024-12-22 16:55:16

Java- 基本封装的相关文章

Java基础——封装、继承、多态

Java基础--封装.继承.多态 --小实例快速成长 抽象: 1.目的:将复杂的东西简单化,将繁乱的内容有序化. 2.过程:对相同.相似的东西合而为一,对不同的内容进行归门别类. 3.结果:类.接口. 封装: 1.目的:化零为整,将零散的内容进行归属,进行权限控制. 2.过程:将某对象的属性.方法(功能)统一到其名下,并分别设置.适当的权限进行控制管理. 3.结果:对象,接口. 继承: 1.求大同存小异:在一个系列内,大部分都有的内容,就划归父类:子类将父类的内容继承过来,可以有自身的一些发展和

七:Java之封装、抽象、多态和继承

本文章介绍了关于Java中的面向对象封装.抽象.继承.多态特点 Java面向对象主要有四大特性:封装.抽象.继承和多态. 一.封装 封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成"类",其中数据和函数都是类的成员. 在面向对象语言中,封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在Java中就是方法),就好像人类,可以具有name,sex,age等属性,同时也具有eat(),sle

Java面向对象㈠ -- 封装

Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:private,默认,protected,public来实现.(这四个权限访问控制符的区别网上有很多,建议读者自行搜索学习,切记要亲自练习一下!)最明显的实现就是把类的成员变量私有(private),只能通过类的成员函数来进行访问,并且此时的成员函数公有(public).这就是著名的setter/getter

体验Java的封装性

1 package com.cnblogs.java; 2 //体验Java的封装性 3 /* 4 * 如下的人类年龄赋值-300岁,显然很不合理,这种直接对类的属性赋值,有时候虽然不合理但却会编译通过. 5 * 所以我们考虑不让对象直接操作属性,而是通过对象调用方法来对属性赋值,在方法中我们就可以进一步限制 6 * 赋值的大小问题. 7 * 解决办法:将类的属性私有化,通过共有的方法来调用修改类的属性.(在方法中限制修改的值) 8 */ 9 public class TestPerson {

JAVA中封装JSONUtils工具类及使用

在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. 封装后的JSON工具类JSONUtils.java代码如下: JSONUtils代码,点击展开 import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Itera

java序列化封装

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class Serializer { static public void serializeObject(Object obj,String path) thr

Java 面向对象-封装

1.面向对象思想概述 ·面向: 基本意:面向.朝向 引申意:注重.关注 ·对象: 世间一切事物 ·面向过程思想: 面向过程思想就是把关注点放在一件事或一个活动中涉及到的步骤(也就是过程)上的思想 ·面向对象思想: -面向对象思想就是把关注点放在一件事或一个活动中涉及到的人或事物(也就是对象)上的思想 -特点:更符合人们思考习惯的思想.把复杂的事情简单话.把人们从执行者变成指挥者 -特征:封装.继承.多态 2.类与对象 描述事物从两个方面着手: 1.属性 2.行为 java中如何描述一个事物? J

java中封装,继承,多态,接口学习总结

### 一:封装java中封装是指一种将抽象性函式接口的实现细节部分包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问.要访问该类的代码和数据,必须通过严格的接口控制.封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段.适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性.***封装的优点***    1  良好的封装能够减少耦合.    2 类内部的结构可以自由修改.     3 可以对成员变量进行更精

Java基础——封装

最近学习Java面向对象方面的知识点,一直没时间更新博客,因为这块的知识点真的蛮绕的.一个知识点一个知识点的往外冒,而且对于我这个初学者来说区分构造器和方法就花费了一整天的时间.现在准备再重新过一遍知识点. 先背下来一个理念: 面向对象程序设计是将数据放在第一位的,然后再考虑操作数据的方法. 之前,再学习Java的优越性的时候,我们知道了Java是一种面向对象设计的程序设计语言.那到底什么是面向对象程序设计呢?要弄懂它,首先我们简单了解一下另一种程序设计. 一.面向过程程序设计: 面向过程程序设

mybatis单表操作实现完全java代码封装

之前在项目中用到mybtis操作数据库时都是手动写sql,对于我这种sql水平不是很好地人来说痛苦死了:动态查询的sql我表示到现在还不会写呀! 还好,利用数据库表反向生成的工具可以帮我解决大部分的sql;(mybatis generator 你懂的) 首先利用反向生成可以帮我们自动生成实体类,dao接口,dao映射文件: 在dao映射文件如下所示: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE