精华内容
下载资源
问答
  • java属性和普通方法

    2019-07-14 16:26:00
    上一节讲了很多深奥理论,那么这节我们就得实践一下,先简单描述一下我们的实体世界:有一个学生小明,那么这个学生就是一个对象,这个对象有哪些属性和方法呢,我们可以先简单抽象一下,属性有(姓名:小明,学号...

    属性和普通方法

    一、定义类

    上一节讲了很多深奥的理论,那么这节我们就得实践一下,先简单描述一下我们的实体世界:有一个学生小明,那么这个学生就是一个对象,这个对象有哪些属性和方法呢,我们可以先简单抽象一下,属性有(姓名:小明,学号:001,性别:男,年龄:12,体重:23kg),还有就是方法(做作业,上课)等。我们通过对这个学生对象进行分析后就可以抽象一个学生类,下面就可以把现实的实体世界通过计算机的实体来描述了。打开Eclipse,我们可以新建一个Student类。

    /**
     * 学生类
     * 
     * @author Administrator
     * 
     */
    public class Student {
        /** 属性 **/
        // 姓名
        String name;
        // 学号
        int number;
        // 性别
        boolean gender;
        // 年龄
        int age;
        // 体重
        double weight;
        /** 方法 **/
        // 普通方法
        // /
        // 访问修饰符 返回值类型 方法名称(参数1,参数2,...){
        // 方法体
        // }
        //返回类型为String
        public String goschool(String date) {
            return "";
        }
        // 做作业
        // void 表示返回空值 空
        public void dohomework() {
        }
    }

    在这个类里面我们定义了相关的属性和方法,属性的定义比较简单,和我们以前定义一个变量的格式是一样的。
    属性类型 属性名称

    方法的定义也不难,具体的格式是

    访问修饰符 返回值类型 方法名称(参数1,参数2,...){
    方法体
    }

    访问修饰符我们以后再讲,一个方法基本包括四个部分,返回值、方法名称、参数和方法体,除了参数可以没有之外其他都是必须的,但是就算没有参数,在方法名称后面也要有个小括号()。我们上面的例子使用void作为返回值类型,表示没有返回值,如果是其他的返回值类型,则必须在方法中使用return关键字返回相对于类型的值。

    二、通过类构造对象

    类的定义就搞定了,下面我们可以通过上面定义的类构造对象(或者叫实例)。格式是如下:

    类名 对象名称=new 类名();

    我们可以在新建一个Run类,在这个类里面就只有一个main方法,以前我们也介绍过了,main方法是程序的入口。在这个main方法中,我们构造一个Student对象。代码如下:

    public class Run {
       public static void main(String[] args) {
          Student stu1=new Student();
       }
    }

    在这句代码里面事实包含了两个操作,定义一个Student对象和构造一个Student对象。这两个步骤我们也可以分开来写。

    public class Run {
        public static void main(String[] args) {
            Student stu1;
            stu1=new Student();
        }
    }

    三、访问属性和调用方法。

    有了对象就会,那么我们就可以访问这个对象的属性和调用它的方法了。属性的访问格式是:

    对象.属性名称

    如果要赋值就是:

    对象.属性名称=属性值

    方法的调用格式:

    对象.方法名称()

    示例代码如下:

    Student stu1;
    stu1 = new Student();
        
    // 赋值
    stu1.name = "小明";
    stu1.age = 20;
    stu1.gender = true;
    stu1.number = 12;
        
    //访问
    System.out.println(stu1.name);
    System.out.println(stu1.age);
    System.out.println(stu1.gender);
    System.out.println(stu1.number);
    
    //方法调用
    stu1.dohomework();

     

    展开全文
  • 14、属性和普通方法

    2018-08-28 11:46:04
    上一节讲了很多深奥理论,那么这节我们就得实践一下,先简单描述一下我们的实体世界:有一个学生小明,那么这个学生就是一个对象,这个对象有哪些属性和方法呢,我们可以先简单抽象一下,属性有(姓名:小明,学号...

    学习目标:

    1、掌握Java中类的概念

    2、掌握类的定义

    3、掌握属性和普通方法的定义

    学习过程:

    一、定义类

    上一节讲了很多深奥的理论,那么这节我们就得实践一下,先简单描述一下我们的实体世界:有一个学生小明,那么这个学生就是一个对象,这个对象有哪些属性和方法呢,我们可以先简单抽象一下,属性有(姓名:小明,学号:001,性别:男,年龄:12,体重:23kg),还有就是方法(做作业,上课)等。我们通过对这个学生对象进行分析后就可以抽象一个学生类,下面就可以把现实的实体世界通过计算机的实体来描述了。打开Eclipse,我们可以新建一个Student类。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    /**

     * 学生类

     

     * @author Administrator

     

     */

    public class Student {

        /** 属性 **/

        // 姓名

        String name;

        // 学号

        int number;

        // 性别

        boolean gender;

        // 年龄

        int age;

        // 体重

        double weight;

        /** 方法 **/

        // 普通方法

        // /

        // 访问修饰符 返回值类型 方法名称(参数1,参数2,...){

        // 方法体

        // }

        //返回类型为String

        public String goschool(String date) {

            return "";

        }

        // 做作业

        // void 表示返回空值 空

        public void dohomework() {

        }

    }

     

    在这个类里面我们定义了相关的属性和方法,属性的定义比较简单,和我们以前定义一个变量的格式是一样的。
        属性类型  属性名称

    方法的定义也不难,具体的格式是

    访问修饰符 返回值类型 方法名称(参数1,参数2,...){
          方法体
        }

    访问修饰符我们以后再讲,一个方法基本包括四个部分,返回值、方法名称、参数和方法体,除了参数可以没有之外其他都是必须的,但是就算没有参数,在方法名称后面也要有个小括号()。我们上面的例子使用void作为返回值类型,表示没有返回值,如果是其他的返回值类型,则必须在方法中使用return关键字返回相对于类型的值。

    二、通过类构造对象

    类的定义就搞定了,下面我们可以通过上面定义的类构造对象(或者叫实例)。格式是如下:

    类名 对象名称=new 类名();

    我们可以在新建一个Run类,在这个类里面就只有一个main方法,以前我们也介绍过了,main方法是程序的入口。在这个main方法中,我们构造一个Student对象。代码如下:

    1

    2

    3

    4

    5

      public class Run {

       public static void main(String[] args) {

          Student stu1=new Student();

       }

    }

    在这句代码里面事实包含了两个操作,定义一个Student对象和构造一个Student对象。这两个步骤我们也可以分开来写。

    1

    2

    3

    4

    5

    6

      public class Run {

        public static void main(String[] args) {

            Student stu1;

            stu1=new Student();

        }

    }

    三、访问属性和调用方法。

    有了对象就会,那么我们就可以访问这个对象的属性和调用它的方法了。属性的访问格式是:

    对象.属性名称

    如果要赋值就是:

    对象.属性名称=属性值

    方法的调用格式:

    对象.方法名称()

    示例代码如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    Student stu1;

    stu1 = new Student();

         

    // 赋值

    stu1.name = "小明";

    stu1.age = 20;

    stu1.gender = true;

    stu1.number = 12;

         

    //访问

    System.out.println(stu1.name);

    System.out.println(stu1.age);

    System.out.println(stu1.gender);

    System.out.println(stu1.number);

     

    //方法调用

    stu1.dohomework();

    展开全文
  • 跟汤老师学Java笔记:练习:改写学生管理系统 完成:第一遍 1.学生相关的主要功能有哪些? (1).查询所有学生 (2).根据学号查询学生 (3).根据姓名和年龄范围查询学生,...entity:实体类对应数据库中的表,类的属性对应

    4到8.练习:改写学生管理系统:使用连接池

    学习:第7遍


    1.学生相关的主要功能有哪些?

    (1).查询所有学生
    (2).根据学号查询学生
    (3).根据姓名和年龄范围查询学生,模糊查询
    (4).添加学生
    (5).修改学生
    (6)根据学号删除学生

    2.班级管理功能有哪些?

    (1).查询所有班级
    (2).根据班级号查询某个班级
    (3).添加班级

    技术要求:
    (1).使用druid连接池,部署druid.jar包

    (2).使用实体类即Bean类或Entity类
    entity:实体类对应数据库中的表,类的属性对应表的字段

    POJO(Plain Ordinary Java Object)简单的Java对象,类中可以包含:属性/get/set/构造方法,不允许有业务逻辑代码,实际就是普通JavaBeans
    VO:Value Object值对象,用于封装 值、数据的对象,可能和数据库中表的字段不对应

    src下的datasource.properties属性文件:

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
    username=root
    password=123456
    initialSize=10
    maxActive=50
    minIdle=5
    maxWait=6000
    

    entity包下的Student类:

    package NewSMS.entity;
    
    import java.io.Serializable;
    import java.util.Date;
    
    /*
     * 学生类
     */
    public class Student implements Serializable {
    
    	private static final long serialVersionUID = -5984449679344766226L;
    
    	private Integer id;
    	private String name;
    	private Integer age;
    	private Double height;
    	private Date bithday;
    	private Clazz clazz; // 所在班级
    
    	public Integer getId() {
    		return id;
    	}
    
    	public void setId(Integer id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public Integer getAge() {
    		return age;
    	}
    
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    
    	public Double getHeight() {
    		return height;
    	}
    
    	public void setHeight(Double height) {
    		this.height = height;
    	}
    
    	public Date getBithday() {
    		return bithday;
    	}
    
    	public void setBithday(Date bithday) {
    		this.bithday = bithday;
    	}
    
    	public Clazz getClazz() {
    		return clazz;
    	}
    
    	public void setClazz(Clazz clazz) {
    		this.clazz = clazz;
    	}
    
    	@Override
    	public String toString() {
    		return "Student [id=" + id + ", name=" + name + ", age=" + age
    				+ ", height=" + height + ", bithday=" + bithday + ", clazz="
    				+ clazz + "]\n";
    	}
    
    	
    }
    
    

    entity包下的Clazz类:

    package NewSMS.entity;
    
    import java.io.Serializable;
    
    /*
     * 班级类
     */
    public class Clazz implements Serializable {
    
    	private static final long serialVersionUID = 4262995174037152678L;
    
    	private Integer id;
    	private String name;
    
    	public Integer getId() {
    		return id;
    	}
    
    	public void setId(Integer id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	@Override
    	public String toString() {
    		return "Clazz [id=" + id + ", name=" + name + "]\n";
    	}
    
    	
    }
    
    

    dao包下的ClazzDao类:

    package NewSMS.dao;
    
    import java.util.List;
    
    import NewSMS.entity.Clazz;
    import NewSMS.mapper.ClazzMapper;
    import NewSMS.util.JdbcTemplate;
    import NewSMS.util.RowMapper;
    
    public class ClazzDao {
    	
    	JdbcTemplate<Clazz> template=new JdbcTemplate<Clazz>();
    	RowMapper<Clazz> rm=(RowMapper<Clazz>) new ClazzMapper();
    	
    
    	//1.查询所有班级
    	public List<Clazz> selectAll(){
    		String sql=new StringBuffer()
    			.append(" select ")
    			.append(" 	id,name ")
    			.append(" from ")
    			.append(" 	t_class ")
    			.toString();
    		return template.query(sql, rm);
    	}
    	
    	//2.根据班级号查询班级
    	public Clazz selectById(int id){
    		String sql=new StringBuffer()
    			.append(" select ")
    			.append(" 	id,name ")
    			.append(" from ")
    			.append(" 	t_class ")
    			.append(" where ")
    			.append(" 	id=? ")
    			.toString();
    		return template.queryForObject(sql, rm, id);
    	}
    	
    	
    	//3.添加班级
    	public void insert(String name){
    		String sql=new StringBuffer()
    			.append(" insert into ")
    			.append(" 	t_class ")
    			.append(" 		(name) ")
    			.append(" values ")
    			.append(" 		(?) ")
    			.toString();
    		template.update(sql, name);
    	}
    	
    }
    
    

    dao包下的StudentDao类:

    package NewSMS.dao;
    
    import java.util.List;
    
    import NewSMS.entity.Student;
    import NewSMS.mapper.StudentMapper;
    import NewSMS.util.JdbcTemplate;
    import NewSMS.util.RowMapper;
    
    
    
    public class StudentDao {
    	
    	JdbcTemplate<Student> template=new JdbcTemplate<>();
        RowMapper<Student> rm = (RowMapper<Student>) new StudentMapper();
    	
    	// 1.查询所有学生
    	public List<Student> selectAll(){
     		String sql=new StringBuffer()
    			.append(" select ")
    			.append(" 	s.id,s.name,s.age,s.height,s.birthday,c.id cid,c.name cname ")
    			.append(" from ")
    			.append(" 	t_student s,t_class c")
    			.append(" where ")
    			.append(" 	s.cid=c.id ")
    			.toString();
     		return template.query(sql, rm);
    	}
    	
    	// 2.根据学号查询学生
    	public Student selectById(int id){
     		String sql=new StringBuffer()
    			.append(" select ")
    			.append(" 	s.id,s.name,s.age,s.height,s.birthday,c.id cid,c.name cname ")
    			.append(" from ")
    			.append(" 	t_student s,t_class c")
    			.append(" where ")
    			.append(" 	s.cid=c.id and s.id=?")
    			.toString();
    		List<Student> list = template.query(sql, rm,id);
    		return list.isEmpty()?null:list.get(0);
    	}
    
    	// 3.根据姓名和年龄范围查询学生
    	public List<Student> selectByCondition(String name,int minAge,int maxAge){
    		String sql=new StringBuffer()
    		.append(" select ")
    		.append(" 	s.id,s.name,s.age,s.height,s.birthday,c.id cid,c.name cname ")
    		.append(" from ")
    		.append(" 	t_student s,t_class c")
    		.append(" where ")
    		.append(" 	s.cid=c.id and s.name like ? and s.age between ? and ?")
    		.toString();
    		return template.query(sql, rm, "%"+name+"%",minAge,maxAge);
    	}
    	
    	// 4.添加学生
    	public void insert(Student stu){
    		String sql=new StringBuffer()
    			.append(" insert into ")
    			.append(" 	t_student ")
    			.append(" 		(name,age,height,birthday,cid) ")
    			.append(" values ")
    			.append("  		(?,?,?,?,?) ")
    			.toString();
    		template.update(sql, stu.getName(),stu.getAge(),stu.getHeight(),stu.getBithday(),stu.getClazz().getId());
    	}
    	
    	// 5.修改学生
    	public void update(Student stu){
    		String sql=new StringBuffer()
    			.append(" update ")
    			.append(" 	t_student ")
    			.append(" set ")
    			.append("  	name=?,age=?,height=?,birthday=?")
    			.append(" where ")
    			.append(" 	id=? ")
    			.toString();
    		template.update(sql, stu.getName(),stu.getAge(),stu.getHeight(),stu.getBithday(),stu.getId());
    	}
    	
    	// 6.根据学号删除学生
    	public void deleteById(int id){
    		String sql=new StringBuffer()
    			.append(" delete from ")
    			.append(" 	t_student ")
    			.append(" where ")
    			.append(" 	id=? ")
    			.toString();
    		template.update(sql, id);
    	}
    }
    
    

    util包下的JdbcUtil类:

    package NewSMS.util;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    import javax.sql.DataSource;
    
    import com.alibaba.druid.pool.DruidDataSourceFactory;
    
    /**
     * JDBC工具类,使用druid连接池
     */
    public class JdbcUtil {
    	
    	private static DataSource dataSource;
    	
    	/**
    	 * 初始化连接池
    	 */
    	static{
    		Properties p = new Properties();
    		try {
    			p.load(JdbcUtil.class.getClassLoader().getResourceAsStream("datasource.properties"));
    			dataSource=DruidDataSourceFactory.createDataSource(p);
    		} catch (Exception e) {
    			throw new ExceptionInInitializerError("JdbcUtil初始化失败:"+e);
    		}
    	}
    	
    	/**
    	 * 获取数据库连接
    	 */
    	public static Connection getConnection() {
    		try {
    			return dataSource.getConnection();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    
    	/**
    	 * 关闭资源
    	 */
    	public static void close(Connection conn, Statement stmt, ResultSet rs) {
    		if (rs != null) {
    			try {
    				rs.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    		if (stmt != null) {
    			try {
    				stmt.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    		if (conn != null) {
    			try {
    				conn.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    
    	public static void close(Connection conn, Statement stmt) {
    		close(conn, stmt, null);
    	}
    	
    }
    
    

    util包下的JdbcTemplate类:

    package NewSMS.util;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    public class JdbcTemplate<T> {
    	Connection conn = null;
    	PreparedStatement ps = null;
    	ResultSet rs = null;
    
    	/**
    	 * 查询操作
    	 */
    	public List<T> query(String sql, RowMapper<T> rm, Object... params) {
    		List<T> list = new ArrayList<T>();
    		try {
    			conn = JdbcUtil.getConnection();
    			ps = conn.prepareStatement(sql);
    			for (int i = 0; i < params.length; i++) {
    				ps.setObject(i + 1, params[i]);
    			}
    			rs = ps.executeQuery();
    			while (rs.next()) {
    				list.add(rm.mapRow(rs));
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			JdbcUtil.close(conn, ps, rs);
    		}
    		return list;
    	}
    
    	/**
    	 * 更新操作
    	 */
    	public void update(String sql, Object... params) {
    		try {
    			conn = JdbcUtil.getConnection();
    			ps = conn.prepareStatement(sql);
    			for (int i = 0; i < params.length; i++) {
    				ps.setObject(i + 1, params[i]);
    			}
    			ps.executeUpdate();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			JdbcUtil.close(conn, ps, rs);
    		}
    	}
    
    	/**
    	 * 查询单个对象
    	 */
    	public T queryForObject(String sql, RowMapper<T> rm, Object... params) {
    		List<T> list = query(sql, rm, params);
    		return list.isEmpty() ? null : list.get(0);
    	}
    
    	/**
    	 * 保存操作, 返回生成的主键
    	 */
    	public Integer save(String sql, Object... params) {
    		try {
    			conn = JdbcUtil.getConnection();
    			ps = conn.prepareStatement(sql,
    					PreparedStatement.RETURN_GENERATED_KEYS);
    			for (int i = 0; i < params.length; i++) {
    				ps.setObject(i + 1, params[i]);
    			}
    			ps.executeUpdate();
    			rs = ps.getGeneratedKeys(); // 获取生成的主键
    			if (rs.next()) {
    				return rs.getInt(1);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			JdbcUtil.close(conn, ps, rs);
    		}
    		return null;
    	}
    
    }
    
    

    util包下的RowMapper类:

    package NewSMS.util;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    /**
     * 回调接口,用于对结果集中的每一行记录进行处理
     */
    public interface RowMapper<T> {
    	
    	/**
    	 * 对每一行记录进行映射,转换为对象
    	 * @param rs 结果集
    	 * @return  每一行记录处理的结果,返回相应的对象
    	 */
    	public T mapRow(ResultSet rs) throws SQLException;
    	
    }
    
    

    view包下的Start类:

    package NewSMS.view ;
    
    import java.util.Scanner;
    
    public class Start {
    
    	public static void main(String[] args) {
    		new Start().showSystemMenu();
    	}
    	
    	// 显示系统菜单
    	public void showSystemMenu(){
    		System.out.println("=================欢迎使用学生管理系统=======================");
    		System.out.println("1.学生管理   2.班级管理");
    		System.out.print("请选择:");
    		
    		Scanner input = new Scanner(System.in);
    		int choice = input.nextInt();
    		if(choice==1){
    			new StudentView().showMenu();
    		}else if(choice==2){
    			new ClazzView().showMenu();
    		}
    	}
    	
    
    }
    
    

    view包下的StudentView类:

    package NewSMS.view;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.List;
    import java.util.Scanner;
    
    import NewSMS.dao.StudentDao;
    import NewSMS.entity.Clazz;
    import NewSMS.entity.Student;
    
    
    
    public class StudentView {
    
    	Scanner input = new Scanner(System.in);
    	StudentDao studentDao = new StudentDao();
    
    	public void showMenu() {
    		System.out.println("1.查询所有学生");
    		System.out.println("2.根据学号查询学生");
    		System.out.println("3.根据姓名和年龄范围查询学生");
    		System.out.println("4.添加学生");
    		System.out.println("5.修改学生");
    		System.out.println("6.根据学号删除学生");
    		System.out.print("请选择:");
    		
    		int choice = input.nextInt();
    		switch(choice){
    			case 1:
    				findAll();
    				break;
    			case 2:
    				findById();
    				break;
    			case 3:
    				findByCondition();
    				break;
    			case 4:
    				add();
    				break;
    			case 5:
    				modify();
    				break;
    			case 6:
    				removeById();
    				break;
    		}
    		showMenu(); //重复执行
    	}
    
    	private void findAll() {
    		List<Student> list = studentDao.selectAll();
    		System.out.println(list);
    	}
    
    	private void findById() {
    		System.out.print("请输入学号:");
    		Student student = studentDao.selectById(input.nextInt());
    		System.out.println(student);
    	}
    
    	private void findByCondition() {
    		System.out.print("请输入姓名:");
    		String name=input.next();
    		System.out.print("请输入最小年龄:");
    		int minAge = input.nextInt();
    		System.out.print("请输入最大年龄:");
    		int maxAge = input.nextInt();
    		List<Student> list = studentDao.selectByCondition(name, minAge, maxAge);
    		System.out.println(list);
    	}
    
    	private void add() {
    		
    		Student stu = new Student();
    		System.out.print("请输入姓名:");
    		stu.setName(input.next());
    		System.out.print("请输入年龄:");
    		stu.setAge(input.nextInt());
    		System.out.print("请输入身高:");
    		stu.setHeight(input.nextDouble());
    		System.out.print("请输入出生日期:");
    		try {
    			//将指定格式输入的字符串转换成Date类型
    			stu.setBithday(new SimpleDateFormat("yyyy-MM-dd").parse(input.next()));
    		} catch (ParseException e) {
    			e.printStackTrace();
    		}
    		System.out.print("请输入班级号:");
    		Clazz clazz = new Clazz();
    		clazz.setId(input.nextInt());
    		stu.setClazz(clazz);
    		
    		studentDao.insert(stu);
    		System.out.println("添加成功");
    	}
    
    	private void modify() {
    		
    	}
    
    	private void removeById() {
    		
    	}
    }
    
    

    view包下的ClazzView类:

    package NewSMS.view;
    
    import java.util.List;
    import java.util.Scanner;
    
    import NewSMS.dao.ClazzDao;
    import NewSMS.entity.Clazz;
    
    
    
    /*
     * 1.查询所有班级
       2.根据班级号查询班级
       3.添加班级
     */
    public class ClazzView {
    	
    	Scanner input = new Scanner(System.in);
    	ClazzDao clazzDao=new ClazzDao();
    
    	public void showMenu(){
    		System.out.println("1.查询所有班级");
    		System.out.println("2.根据班级号查询班级");
    		System.out.println("3.添加班级");
    		
    		System.out.print("请选择:");
    		int choice = input.nextInt();
    		switch(choice){
    			case 1:
    				findAll();
    				break;
    			case 2:
    				findById();
    				break;
    			case 3:
    				add();
    				break;
    		}
    		showMenu();
    	}
    
    	private void findAll() {
    		List<Clazz> list = clazzDao.selectAll();
    		System.out.println(list);
    	}
    
    	private void findById() {
    		System.out.print("请输入班级号:");
    		Clazz clazz = clazzDao.selectById(input.nextInt());
    		System.out.println(clazz);
    	}
    
    	private void add() {
    		System.out.print("请输入班级名称:");
    		clazzDao.insert(input.next());
    		System.out.println("添加成功");
    	}
    }
    
    
    展开全文
  • 学习JAVA365天(4)

    2020-10-27 12:42:32
    通常分为两个部分,即属性和行为,如对于某个学生对象,姓名、年龄、性别等属性吃饭、学习、写作业、休息、体育活动等行为。我们通过属性和行为就可以了解一个对象。 类是同一事物统称,不能把一个学生称为...

    2020年10月27日类和对象

    JAVA是面向对象的的程序语言,对象是事物存在的一个个实体,如学生,课桌、计算机、高楼大厦、飞禽走兽等等。我们为了方便处理问题,往往会思考这些对象由哪些部分组成。通常分为两个部分,即属性和行为,如对于某个学生对象,有姓名、年龄、性别等属性,有吃饭、学习、写作业、休息、体育活动等行为。我们通过属性和行为就可以了解一个对象。
    类是同一事物的统称,不能把一个学生称为学生类。类是世界上事物的抽象称呼,而对象则是这个事物相对应的实体。如果面临实际问题,往往需要实例化对象来解决。比如解决一名学写作业的问题,只能拿这名学生来处理,而不能拿整个学生类来处理。

    这里以具体来实例来加深理解,建立一个学生类:

    class Student{
    private int age;
    private String name;
    public int getage(){
    return age;
    }
    public void setage(int age)
    {
    this.age=age;
    }
    public void setname(String name)
    {
    this.name=name;
    }
    public String getname()
    {
    return name;
    }
    }
    

    在这个类中,我们定义了age和name两个属性(变量),以及设置姓名setaname()、设置年龄setage()、获取姓名getname()、获取年龄gaetage()4个行为(方法)。

    现在在主类中用Student类创建一个具体的学生对象liming,并设置他的属性。

    Student liming=new Student();  //用new关键字创建了一个新学生liming
    liming.setage(13);            //设置他的年龄是13
    liming.setname("李明");       //设置他的姓名是“李明”
    System.out.printf("\n%s的年龄是:%d",liming.getname(),liming.getage()); //在控制台上显示学生信息
    

    JAVA在创建对象时会自动调用构造方法,可以在构造方法中初始化对象。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的,每当类实例化一个对象时,构造方法都会调用,如果类中没有明确定义构造方法,编译器会自动创建一个不带参数的默认构造方法。如上面的Student类中主没有构造方法,编译器会自动创建一个。我们可以为Student写两个构造方法,看一下构造方法的运行:

    Student()
    {
    System.out.printf("\n在这里调用无参数的构造方法创建了一个新学生");
    }
    Student(String name,int age){
    System.out.printf("\n在这里调用带参数的构造方法创建了一个新学生,并且在创建时指定他的名字和年龄");
    setname(name);
    setage(age);
    }
    

    将主方法的内容改为:

    public static void main(String[] args)
    {
    Student liming=new Student();
    Student wangjun=new Student("wangjun",14);
    System.out.printf("\n%s的年龄是:%d",liming.getname(),liming.getage());
    System.out.printf("\n%s的年龄是:%d",wangjun.getname(),wangjun.getage());
    
    }
    

    编译运行结果如下图:
    在这里插入图片描述
    可以看出,创建对象时使用参数和不使用参数,系统分别调用了不同的构造方法进行了创建。

    本例中的this.age=age;语句使用了this关键字。在JAVA中规定使用this来代表本类对象的引用,this关键字被隐式地用于引用对象的成员变量和方法。在本例中this.age指的就是Student类的age成员变量,第二个age指的是形参age。在局部变量或方法参数覆盖了成员变量时,就要添加this关键字明确引用的是类成员还是局部变量或方法参数。另外,this也可以做为返回值。

    今天的学习就到这里了。

    展开全文
  • 例如管理一个班级里面的学生,我们需要知道最基本人员信息有学生编号、学生姓名、学生性别、学生年龄、学生家庭住址。可以根据这些属性来拆创建一个实体类。 `public class Student { private int gid; //...
  • 22、面向对象特征有哪些方面 15 23、java中实现多态机制是什么? 17 24、abstract class和interface有什么区别? 17 25、abstractmethod是否可同时是static,是否可同时是native,是否可同时是synchronized? 18 ...
  • 哪些课程,学生学习每门课程成绩如何,哪个班的学生的成绩比较好等。根据问题描述设计数据库,用SQL语言完成以下各任务。 (1)根据表12.1提供信息,修改不合理表,创建数据库,在数据库中创建各表。 表12.1...
  • Java中反射意思是是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法功能称之为反射...
  • 码:惟一标识实体的属性集称为码。实体联系图( E 一 R 图):提供了表示实体型、属性和联系的方法: · 实体型:用矩形表示,矩形框内写明实体名; · 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来; ...
  • CruiseYoung提供详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 SQL Server 2008实战(SQL Server程序员和DBA不可或缺权威参考手册) 基本信息 原书名: SQL Server 2008 ...
  • 惟一标识实体的属性集称为码。实体联系图( E 一 R 图):提供了表示实体型、属性和联 系的方法: · 实体型:用矩形表示,矩形框内写明实体名; · 属性:用椭圆形表示,并 用无向边将其与相应的实体连接起来; · ...
  • 数据库期末考

    2020-01-09 21:51:00
    把ER图转换为关系模式,每一个实体有哪些属性 学生(学号, 姓名, 班级) 课程(课程号, 课程名) 关系数据库设计理论(15) 列出所有键 有没有存在BCNF冲突,如果涉及到,列出冲突,并进行优化,再分解关系集合 写出...
  • 最新Java面试宝典pdf版

    热门讨论 2011-08-31 11:29:22
    22、面向对象特征有哪些方面 15 23、java中实现多态机制是什么? 17 24、abstract class和interface有什么区别? 17 25、abstractmethod是否可同时是static,是否可同时是native,是否可同时是synchronized? 18 ...
  • Java面试宝典2010版

    2011-06-27 09:48:27
    22、面向对象特征有哪些方面 23、java中实现多态机制是什么? 24、abstract class和interface有什么区别? 25、abstractmethod是否可同时是static,是否可同时是native,是否可同时是synchronized? 26、什么...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    删除操作一旦执行,立即被监听器捕获到,进而在执行 删除操作前执行自定义函数体,即判断实体有无undeletable标签,则中断删除操作,无则正常删除。 用例图 关系 关联关系 ;依赖关系 ;泛化关系;关系...
  • (3)综合考虑各个类在命名和功能方面有哪些共性。 3、细化有关类,描述他们之间相互关系,即类关系和对象关系。 4、描述本系统界面,通过分别定义成员不同属性,为抽象和实现提供分离接口。 四、设计...
  • 封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。 1-6 面向对象的软件工程包括哪些主要内容? 解: 面向对象的软件工程是面向对象方法在软件工程...
  • (C#+SQL)旅游管理系统

    热门讨论 2013-06-25 12:16:27
    按出发日期查询有哪些已经生成旅行团 (3)设计生成旅行团功能界面布局 “组建旅行团”消息提示,点击确定后,生成该旅行团明细信息,显示在datagridview中,并修改订单表中对应字段(即该订单对应groupID...
  • Java 面试宝典

    2013-02-01 10:02:08
    22、面向对象特征有哪些方面 ................................................................................. 16 23、java 中实现多态机制是什么? ......................................................

空空如也

空空如也

1
收藏数 20
精华内容 8
热门标签
关键字:

学生实体的属性有哪些