初学Java—如何设计类并使用设计好的类

  • Post author:
  • Post category:java





第二单元 Part1 类的设计和编写




特别提醒

  • 软件开发:先思考设计,在开发(写代码)

问题:上来就写代码,调试,改代码。

  • 软件开发的流程是什么?
  • 招投标-签合同-建立项目组-需求调研与分析(需求分析工程师/需求管理工程师)-数据库设计(DBA数据库管理员)-架构设计(架构师)-详细设计(系统分析师)-编码(开发)(研发工程师)-测试(测试工程师)-部署实施(实施工程师)-甲方验收-维护(技术支持工程师)



一、如何设计类

  • 1.用什么工具设计?

    • 答:UML工具:Enterprise Architecture、VP、Rational Rose、StarUML、Word、VISIO、PowerDesigner、Eclipse中的Green插件等等。
  • 2.谁来设计类?

    • 系统分析师、系统分析员:软考(中级)



动手任务1. 设计类

  • 1.面向的编程主线(步骤)

    • 写类-创建对象-对象调用方法
  • 2.什么是类?

    • 类就是类型的简称;类是抽象的,不具体、不明确;同类事物的概括。
  • 3.什么是对象?

    • 具体物件就是对象,万物皆对象。对象是具体的、明确的。
    • 在编程时,要和日常生活结合来理解。
    • 实际办事情,是对象办,还是类办? 答:对象。
  • 4.类和对象的区别:

    • 类是抽象的,对象是具体的。
    • 类是对同一类型对象共同特征的概括(抽象)。
  • 5.设计类

    • 设计教务系统中的学生类。
    • 类里的属性:Attributes,名词性质。
    • 类里的操作:Operations,方法,动词性质。

方法形参等是什么有程序员定,只要符合需求就可以。我们在编程序,不是程序编我。

  • 6.在Eclipse中写这个类Student

    • 写Student类,加上标准注释
  • 7.在Eclipse中设置新建class快捷键(新建包的方法类似:Ctrl + shift + p)

    步骤: window-preferences-搜索keys-点key一下,输入new class-在下边输入Ctrl+shift+N-点应用并关闭,In window:在窗口中起作用。



动手任务2: 带包的类

  • 1.为什么用包?

    • 防止类名冲突,一人一个包,包名不同,就能区分类。
  • 2.包怎么命名?

    • 全小写,域名倒写,一般的规则:域名倒写.系统代号.模块名称
  • 3.Student类名

  • 4.全限定的类名:com.ychs.corejava.unit2.Student



动手任务3:生成JavaDoc文档

  • 注意输入编码和字符集参数



动手任务4:如何使用

  • 1.API文档:(https://docs.oracle.com/javase/8/docs/api/?java/lang/NullPointerException.html)

  • 2.软件=程序+数据+文档+服务

  • 3.Application Programming Interface,应用程序接口

  • 4.java.lang Java语言的核心包,这个包不需要导入

  • 5.java.io

  • 6.java.util

  • 7.java.sql

  • 8.java.lang.reflect

  • 9.java开头的包 :java的基础包

  • 10.javax开头的:扩展包

  • 11.org开头的:第三方包

  • 12.com开头的:自定义包

  • 13.如何导入包?import;快捷键Ctrl shift O/M(import java.lang.* 表示的是导入java.lang包包含的所有包。)

  • 14.在Java中不支持嵌套导入

导入包的次序:基础包、扩展包、第三方包、自定义包



动手任务5:看API源码

  • 能找到API源码位置:jdk目录下有一个src压缩包,这个就是所有API的源码

  • 在Eclipse中点击查看源码:按住Ctrl键点想看源码的类:跳转到这个类的源码。



二、口述面试题

  • 1.什么是OOP?

    • OOP:Object Oriented Programming,面向对象编程,一种编程方式,也是一种编程思想
  • 编程方式有哪些?

    • 面向过程编程:c
    • 面向对象编程:Java、C++、C#、Python
    • 面向组件编程。
    • 面向服务编程:前端后端分离,微服务。
  • 2.面向对象的编程步骤(开发主线)?

    • OOP编程多与生活场景联系
    • 写类–创建对象–对象调用方法(属性)
    • 先设计类,UML设计软件的语言,不是编程,是图形符号。
  • 3.如何理解类?如何理解对象?如何理解属性和方法?

    • 类就是类型的简称;类是抽象的,不具体、不明确;类是对同一类型对象共同特征的概括
    • 对象:具体物件就是对象,万物皆对象。对象是具体的、明确的。
    • 把人当作一个类的话:那么他的名字,性别,身高等,就是他的属性。(理解:每个人都有不同的属性)跑步,吃饭这些行为就是他的方法。(理解:每个人都能做跑步,吃饭这些相同的行为)

      4.面向对象(OOP)的特征有哪些? 封装 继承 多态 抽象



第二单元 Part2 使用设计好的类




3.1动手任务



3.1.1如何使用类里面的方法

  • OPP:面向对象编程(Object Oriented Programming)

    • 第一步:创建类
    • 第二步:创建对象,使用new
    • 第三步:对象调用方法,发挥作用



3.1.2.如何使用构造方法



一、构造方法:
  • 同时具备两个条件:

    • (1)名字和类名相同
    • (2)没有返回类型


二、构造方法作用:
  • 1.与new配合创建对象

  • 2.给对象属性赋初值

:默认构造方法,如果程序员不写构造方法,JVM自动提供一个;程序员写了,JVM不提供。



3.1.3如何接收键盘输入

  • Scanner 形参=new Scanner(System.in);

  • int 参数=形参.nextint();

  • 或者参数=形参。next();

package com.ychs.corejava.unit2;

import java.util.Date;

/**
 * 学生类
 * @author zhaobiao
 * @version 1.0
 */
public class Student {
	/**
	 * 学生学号
	 */
	private String studentId;	
	/**
	 * 学生姓名
	 */
	private String name;
	/**
	 * 学生年龄
	 */
	private int age;
	/**
	 * 学生籍贯
	 */
	private String nation;
	
	/**
	 * 吃饭方法
	 * @param food 吃的食物
	 * @return 吃完后的反馈
	 */
	public String eat(String food) {
		System.out.println("我正在吃:" + food);
		return "好吃!";
	}
	
	/**
	 * 说话方法
	 */
	public void speak() {
		System.out.println("大家好!");
	}
	
	/**
	 * 咬人方法
	 * @param name 被咬的人姓名
	 */
	public void bite(String name) {
		System.out.println(name + "被咬了!");
	}
	
	/**
	 * 按学校和姓名咬人
	 * @param schoolName 学校名字
	 * @param name 被咬的人姓名
	 * @return 咬完后的结果   形参(放在方法括号里的),实际上就是占位置的;
	 */
	public String bite(String schoolName, String name) {
		System.out.println(name + "被咬了");
		return name + "喊疼";
	}
	
	public static void main(String[] args) {
		/*第二步、创建对象,使用new*/
		/*构造方法:同时具备两个条件,一、名字和类名相同;二、没有返回类型
		 * 构造方法的作用:1.与new配合创建对象  2.给对象属性赋初值
		 * 默认构造方法:如果程序员不写构造方法,JVM自动提供一个:程序员写了,JVM不提供。
		 * */
		Student zhangsan = new Student();
		
		/*第三步、对象调用方法,才能发挥它的作用*/
		String eatResult = zhangsan.eat("薯条");
		System.out.println("eat方法调用后的结果:" + eatResult);
		
		zhangsan.speak();
		zhangsan.bite("孔主任");
		String biteResult = zhangsan.bite("太原科技大学计算机系","孔主任");
		System.out.println("第二个bite方法被调用得到的结果:" + biteResult);	
	}
}



3.2准确口述



3.2.1构造方法的特征及作用是什么?

  • 1.构造方法的两个条件:名字和类名相同,没有返回类型

  • 2.作用:与new配合创建对象,给对象属性赋值



3.2.2属性赋值方式有哪些?次序是?

  • 1.默认值

  • 2.显示赋值

  • 3.构造方法赋值



3.2.3属性默认值?

  • 默认初值:

    • 对象默认值为null
    • 整数为默认0
    • 小数为0.0
    • 布尔值为false



3.3Git Commit Message格式说明

  • (1)commit Message格式(type):(subject)说明文字,即:(类型):(主题)说明

  • (2)type用于说明commit 的类别,使用下面7个类型;

  • 1.feat:新功能(feature)

  • 2.fix:修补bug

  • 3.docs:文档(documentation)

  • 4.style:格式(不影响代码运行的变动)

  • 5.refactor:重=重构(即不是新增功能,也不是修改bug的代码变动)

  • 6.test:增加面试

  • 7.chore:构建过程或辅助工具的变动

  • subject是commit目的的简述,不超过50个字符,且结尾不加句号(。)由程序员确定

  • 示例:

    • feat(增加功能):增加请假审批的方法
    • fix(bug修复):修复密码未加密问题
    • doc(注释修改):修改addUser的文档注释



版权声明:本文为python_zb原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。