Java学习第二阶段-封装-班级和学生

package p05;

import java.util.Scanner;

public class Program {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SchoolClass J128 = new SchoolClass("J128", "2016年7月");
        J128.addStudent(new Student(201601, "半藏", true, 22));
        J128.addStudent(new Student(201602, "猎空", false, 20));
        J128.addStudent(new Student(201603, "小美", false, 20));
        J128.addStudent(new Student(201604, "源", true, 24));
        J128.addStudent(new Student(201605, "麦克雷", true, 25));
        //用户输入学号查找学生
        Scanner input = new Scanner(System.in);
        System.out.print("请输入一个学号,查找学生:");
        int StudentID=input.nextInt();
        boolean isFind=false;
        for (Student item : J128.getStudents()) {
            if (StudentID==item.getStudentID()) {
                item.print();
                System.out.println();
                isFind=true;
                break;
            }
        }
        if (!isFind) {
            System.out.println("不存在该学生!\n");
        }
        //输出该班级的编号以及它所有的学生信息
        J128.print();
        System.out.println();
        //让用户输入一个年龄,查找并输出所有比该年龄大的学生
        System.out.print("请输入一个年龄:");
        int age=input.nextInt();
        boolean isFindAge=false;
        for (Student item : J128.getStudents()) {
            if (item.getAge()>age) {
                System.out.println("学生"+item.getName()+"的年龄大于"+age);
                isFindAge=true;
            }
        }
        if (!isFindAge) {
            System.out.println("没有找到年龄大于"+age+"的学生");
        }
    }

}
package p05;

public class SchoolClass {
    private String number;
    private String classtime;
    private Student[] students;

    public Student[] getStudents() {
        return students;
    }
    public void setStudents(Student[] students) {
        this.students = students;
    }
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }
    public String getClasstime() {
        return classtime;
    }
    public void setClasstime(String classtime) {
        this.classtime = classtime;
    }

    public SchoolClass(String number,String classtime){
        setNumber(number);
        setClasstime(classtime);
        setStudents(new Student[0]);
    }

    public void addStudent(Student newStudent){
        Student[] newStudents=new Student[getStudents().length+1];
        for (int i = 0; i < getStudents().length; i++) {
            newStudents[i]=getStudents()[i];
        }
        newStudents[getStudents().length]=newStudent;
        setStudents(newStudents);
    }

    public void print(){
        System.out.println("班级编号:"+getNumber());
        for (Student item : students) {
            item.print();
        }
    }

}
package p05;

public class Student {
    private int studentID;
    private String name;
    private boolean isMale;
    private int age;

    public String getIsMale() {
        if (isMale) {
            return "男";
        }
        else {
            return "女";
        }
    }
    public void setMale(boolean isMale) {
        this.isMale = isMale;
    }
    public int getStudentID() {
        return studentID;
    }
    public void setStudentID(int studentID) {
        this.studentID = studentID;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    public Student(int studentID,String name,boolean isMale,int age){
        setMale(isMale);
        setStudentID(studentID);
        setName(name);
        setAge(age);
    }

    public void print(){
        System.out.println("学生学号:"+getStudentID()+",姓名:"+getName()+",性别:"+getIsMale()+",年龄:"+getAge());
    }

}
时间: 2024-10-13 23:30:43

Java学习第二阶段-封装-班级和学生的相关文章

Java学习之封装

package hello2;public class Person {       String name;       int age;       public void book(){        System.out.println("看书");       }       public void tv(){        System.out.println("看电视");       }} 使用封装是为了在类属性使用时一些限制,比如上面年龄不可能很大

java学习中,面向对象的三大特性:封装、继承、多态 以及 super关键字和方法的重写(java 学习中的小记录)

java学习中,面向对象的三大特性:封装.继承.多态 以及 super关键字和方法的重写(java 学习中的小记录) 作者:王可利(Star·星星) 封装     权限修饰符:public 公共的,private 私有的     封装的步骤:          1.使用private 修饰需要封装的成员变量.          2.提供一个公开的方法设置或者访问私有的属性              设置 通过set方法,命名格式:     set属性名();  属性的首字母要大写 访问 通过ge

非专业码农 JAVA学习笔记 3 抽象、封装和类(2)

(2).静态域-放在内存公共存储单元,不放在特定的对象,用static修饰 (续上一篇<非专业码农 JAVA学习笔记 3 抽象.封装和类(1)>...) (3).静态初始器-由static引导的一对大括号括起来的语句组,作用跟构造函数相似 (4).最终域-final引导的,值在整个过程都不发生改变的 5.方法 (1)方法的定义:修饰词1 修饰词2…返回值类型 方法名(参数) throw[异常列表] 这里个人经验就是注意定义了返回值的方法,要在方法体里面增加return 该类型变量:此外遇到if

[ Java学习基础 ] Java的封装性与访问控制

Java面向对象的封装性是通过对成员变量和方法进行访问控制实现的,访问控制分为4个等级:私有.默认.保护和公有,具体规则如下表: 1.私有级别 私有级别的关键字是private,私有级别的成员变量和方法只能在其所在类的内部自由使用,在其他的类中则不允许直接访问.私有级别限制性最高.示例代码如下: 1 // PrivateClass.java文件 2 public class PrivateClass { 3 private int x; 4 5 public PrivateClass() { 6

2016最新Java学习计划

一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 学完后目标: 1.可进行小型应用程序开发 2.对数据库进行基本的增删改查管理 市场价值:¥5000 计算机基础知识 计算机基础.DOS常用命令.Java概述.JDK环境安装配置.环境变量配置.Java程序入门 1.2015年Java基础视频-深入浅出精华版(强烈推荐) 2.历经5年锤炼(适合初学者入

最全Java学习路线图——Java学习指南

准备篇 适用/适合人群:适合基础小白 目标:掌握JavaSE. ●技术点小节: 1.开发工具的安装配置的介绍 2.JDK安装 3.DOS环境编程 4.Eclipse的安装使用 ●JAVA基础 1.基本的语法规范 2.数据类型 3.流程控制 4.函数 ●初识JavaOOP 1.类,对象,面向编程思想 2.字符串类 3.随机数 4.正则表达式 5.递归的使用 ●JavaOOP基础 1.JavaOOP之封装 2.JavaOOP之继承 3.JavaOOP之多态 4.Java访问修饰符 5.Java接口

Java:面向对象--封装

1.面向对象的简单说明 1 /* 2 事物: 3 属性 事物的信息描述 4 行为 事物的功能 5 6 类: 7 成员变量 事物的属性 8 成员方法 事物的行为 9 10 定义一个类,其实就是定义该类的成员变量和成员方法. 11 12 手机事物: 13 属性:品牌,价格,颜色... 14 行为:打电话,发短信,玩游戏... 15 16 手机类: 17 成员变量:品牌,价格,颜色 18 成员方法:打电话,发短信,玩游戏 19 20 成员变量:和以前变量的定义是一样的格式,但是位置不同,在类中方法外.

java学习--基础知识阶段性总结--基础面试题

1. 静态变量和实例变量的区别 局部变量不能用静态的,如果用了静态的,则不会从静态区消失 * 静态变量也叫类变量  成员变量也叫对象变量 * A:所属不同 * 静态变量属于类,所以也称为为类变量 * 成员变量属于对象,所以也称为实例变量(对象变量) * B:内存中位置不同 * 静态变量存储于方法区的静态区 * 成员变量存储于堆内存 * C:内存出现时间不同 * 静态变量随着类的加载而加载,随着类的消失而消失 * 成员变量随着对象的创建而存在,随着对象的消失而消失 * D:调用不同 * 静态变量可

JAVA学习篇--ThreadLocal,Java中特殊的线程绑定机制

在DRP项目中,我们使用了ThreadLocal来创建Connection连接,避免了一直以参数的形式将Connection向下传递(传递connection的目的是由于jdbc事务要求确保使用同一个connection连接).那么ThreadLocal是如果做到的呢?它和同步锁的不同在哪里? 是什么: 对于ThreadLocal看英文单词我们很容易理解为一个线程的本地实现,但是它并不是一个Thread,而是threadlocalvariable(线程局部变量).也许把它命名为ThreadLoc