Java学习基础知识

2025-04-27 08:54:32

关于Java的基础学习

工具/原料

Java学习基础知识

具体的java几个问题:

1、请先考虑以下几个问题: 1.什么是封装? 2.关召堡厥熠键字private如何使用? 3.构造方法如何创建,又如何使用? 4.如何声明包?如何导入包? 5.包与存储J锾攒揉敫ava源文件的目录结构的关系是什么? 6.如何给类的方法添加JavaDoc注释? 为什么需要封装? 编写一个类,代表教师,要求: 具有属性:姓名、年龄 具有行为:自我介绍 教师的最小年龄要求:22岁1. public class Teacher{2. public String name;// 教员姓名3. public int age; //年龄4. /**5. * 返回自我介绍的内容6. */7. public String introduction() {8. return"大家好!我是" + name + ",我今年"+ age+"岁";9. }10. }复制代码编写一个测试类,要求: 实例化一个教员对象,并对其初始化 在控制台输出该教员的自我介绍1. public class TeacherTest{2. public static void main(String[ ] args) {3. Teacherteacher = new Teacher();4. teacher.name = "李芳";5. teacher.age =10;6. System.out.println(teacher.introduction());7. }8. }复制代码运行结果:1. 大家好!我是李芳,我今年10岁复制代码要满足教员的最小年龄要求,可以通过对属性的封装来实现 封装,就是隐藏实现细节 将属性私有化,提供公有方法访问私有属性 通过这些公有方法访问私有属性 Teacher.java1. public class Teacher {2. private String name;// 教员姓名3. // 返回教员姓名4. public String getName() {5. return name;6. }7. // 设定教员姓名8. public void setName(String name) {9. this.name = name;10. }11. }复制代码Test.java1. public class Test{2. public static void main(String args[ ]){3. Teacherteacher = new Teacher();4. teacher.setName ("李芳");5. String tName = teacher.getName();6. }7. }复制代码如何实现封装 封装的实现: 1、修改属性的可见性来限制对属性的访问 2、为每个属性创建一对赋值(setter)方法和取值(getter) 方法,用于对这些属性的访问 3、在setter和getter方法中,加入对属性的存取限制1. public class Teacher {2. private String name;// 教员姓名3. private int age; //年龄4. public int getAge() {5. return age;6. }7. public void setAge(int age) {8. if (age<22) {9. System.out.println("错误!最小年龄应为22岁!");10. this.age = 22; //如果不符合年龄要求,则赋予默认值11. } else {12. this.age = age;13. }14. }15. //此处省略对name属性的setter、getter方法16. }复制代码测试类通过调用setter方法,为对象的各个属性赋值1. public class Test {2. public static void main(String[ ] args) {3. Teacher teacher = new Teacher();4. teacher.setName ("李芳");5. teacher.setAge(10);6. System.out.println(teacher.introduction());7. }8. }复制代码打印结果:1. 错误!最小年龄应为22岁!2. 大家好!我是李芳,我今年22岁复制代码使用封装,增加了数据访问限制,增强了程序的可维护性 随堂练习: 请通过代码封装,实现如下需求: 编写一个类Book,代表教材: 具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200 为各属性设置赋值和取值方法 具有方法:detail,用来在控制台输出每本教材的名称和页数 编写测试类BookTest进行测试:为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确 为什么需要包? 这和我们平时使用文件袋整理文件是一样的道理,优点: 1.文档分门别类,易于查找 2.不同内容的文档可以放在不同的袋子中,拥有相同的名字,避免冲突 3.易于管理 树形文件系统——使用目录解决文件同名冲突问题 如何存放两个同名的类而不冲突? 包——解决类的同名问题 1.允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件 2.防止命名冲突 3.更好的保护类、数据和方法 如何创建包? 使用package声明包,以分号结尾 如果有包的声明,一定作为Java源代码的第一条语句1. package com.tiao2tiao.java;2. public class School{3. ……4. public String toString(){5. ……6. } 7. } 复制代码其中,包名是com.tiao2tiao.java 包命名规范: 包名由小写字母组成,不能以圆点开头或结尾 自己设定的包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名。 如:域名tiao2tiao.com1. package com.tiao2tiao.qm; 复制代码自己设定的包名部分依不同机构各自内部的规范不同而不同1. package com.tiao2tiao.javagroup.schoolproject;复制代码包与目录的关系 创建好的包和Java源文件是如何存储的? 创建包com.tiao2tiao.qm,即应该对应于目录结构:..\com\tiao2tiao\qm 如何导入包? 为了使用不在同一包中的类,需要在Java程序中使用import关键字导入这个类 语法:1. import 包名. 类名;复制代码代码示例:1. import java.util.*; //导入java.util包中所有类2. import java.util.Scnner; //导入java.lang包中的Scanner类3. import com.tiao2tiao.javagroup.schoolproject.Teacher;//导入自定义包中的Teacher类复制代码1、系统包(eg:java.util,java.lang) 2、自定义包:com.tiao2tiao.javagroup.schoolproject *:指包中的所有类 Scanner:指包中的Scanner类 注意:一旦类放入包中,包名和类名共同组合才能描述一个类 java.lang.包是自动导入的,可以不需要写import java.lang.*;语句 为什么需要构造方法 问题:开发教师类Teacher,要求: 具有属性:姓名、年龄、学历、职位 具有行为:自我介绍 Teacher.java1. public class Teacher {2. private String name; // 姓名3. private intage; // 年龄4. private String education; // 学历5. private String position; // 职位6. public String introduction() {7. return "大家好!我是" + name + ",我今年” + age + "岁,学历“8. +education+",目前职位是"+position;9. }10. public String getName() {11. return name;12. }13. public void setName(String myName) {14. name = myName;15. }16. // 以下是其他属性的setter、getter方法,此处省略17. }复制代码编写一个测试类,要求: 实例化一个教员对象,并对其初始化,在控制台输出该教员的自我介绍 TeacherTest.java1. public class TeacherTest {2. public static void main(String[ ] args) {3. Teacherteacher = new Teacher();4. teacher.setName("李芳");5. teacher.setAge(23);6. teacher.setEducation("本科");7. System.out.println(teacher.introduction());8. }9. }复制代码构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值 构造方法必须满足以下语法规则: 1、方法名与类名相同 2、没有返回类型1. public classTeacher {2. private String name;// 教员姓名3. // 构造方法4. publicTeacher() {5. name = "无名氏";6. }7. }复制代码使用new关键字调用构造方法1. public class TeacherTest {2. public static void main(String[ ] args) {3. Teacherteacher = new Teacher();4. }5. }复制代码带参数的构造方法1. public class Teacher {2. private String name; // 教员姓名3. private int age; // 年龄4. private String education;// 学历5. private String position; // 职位6. // 带参数的构造方法7. public Teacher(String pName,int pAge,8. String pEducation,StringpPosition) {9. name = pName;10. age = pAge; // 可以增加对age等属性的存取限制条件11. education = pEducation;12. position = pPosition;13. }14. public String introduction() {15. return "大家好!我是" + name + ",我今年" + age + "岁,学历"16. + education + ",目前职位是"+position;17. }18. }复制代码通过调用带参数的构造方法,简化对象初始化的代码1. public class TeacherTest {2. public static void main(String[ ] args) {3. Teacherteacher =new Teacher("李芳",23, "本科", "初级教师");4. System.out.println(teacher.introduction());5. }6. }复制代码创建对象时,一并完成了对象成员的初始化工作 运行结果:大家好!我是李芳,我今年23岁,学历本科,目前职位是初级教师 随堂练习: 编写一个类Book2,代表教材: 具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200 具有方法: detail,用来在控制台输出每本教材的名称和页数。 具有带参数的构造方法:用来完成对象的初始化工作,并在构造方法中完成对页数的最小值限制 编写测试类Book2Test进行测试:初始化一个Book2对象,并调用该Book2对象的detail方法,看看输出是否正确 JavaDoc注释 回顾学过的注释方式 单行注释://这里是注释 多行注释:/*这里是注释1 这里是注释2*/ JavaDoc注释:使用“/**”开始和“*/”结束,用来注释类,方法等1. /**2. * 自我介绍3. * @return strInfo 介绍信息4. */5. public String introduction() {6. String strInfo="大家好!我是" + name + ",我今年" + age + "岁,学历"7. + education + ",目前职位是"+position;8. return strInfo ;9. }10. }复制代码针对类的JavaDoc注释: Teacher类:描述信息 @author :描述作者信息 @version :描述版本信息 针对方法的JavaDoc注释: 自我介绍:是描述信息 @return:描述方法的返回值 关键词列表: @author 作者名 @version 版本标识 @parameter 参数及其意义 @since 最早使用该方法/类/接口的JDK版本 @return 返回值 @throws 异常类及抛出条件 @deprecated 引起不推荐使用的警告 @see reference 查看引用 @override 重写 JavaDoc是学习和使用Java语言最常使用的参考资料之一 如何使用JavaDoc? 例如:如何查找类String的indexOf()方法的使用? 请回答课前提出的几个问题: 1.什么是封装? 2.关键字private如何使用? 3.构造方法如何创建,又如何使用? 4.如何声明包?如何导入包? 5.包与存储Java源文件的目录结构的关系是什么? 6.如何给类的方法添加JavaDoc注释?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:95
  • 阅读量:46
  • 阅读量:90
  • 阅读量:30
  • 阅读量:94
  • 猜你喜欢