Java学习基础知识

作者:烟中隐约闪现 | 创建时间: 2023-06-22
关于Java的基础学习...
Java学习基础知识

具体的java几个问题:

请先考虑以下几个问题:  1.什么是封装?  2.关键字private如何使用?  3.构造方法如何创建,又如何使用?  4.如何声明包?如何导入包?  5.包与存储Java源文件的目录结构的关系是什么?  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.                Teacher  teacher = new  Teacher(); 4.                teacher.name = "李芳"; 5.                teacher.age =10; 6.                 System.out.println(teacher.introduction()); 7.            } 8.        } 复制代码 运行结果: 1.        大家好!我是李芳,我今年10岁 复制代码 要满足教员的最小年龄要求,可以通过对属性的封装来实现  封装,就是隐藏实现细节  将属性私有化,提供公有方法访问私有属性  通过这些公有方法访问私有属性     Teacher.java 1.        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.java 1.        public class Test{ 2.            public static void main(String args[ ]){ 3.                Teacher  teacher = 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.com 1.        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.java 1.        public class Teacher { 2.            private String name;          // 姓名 3.            private int  age;                  // 年龄 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.java 1.        public class TeacherTest { 2.            public static void main(String[ ] args) { 3.                Teacher  teacher = new  Teacher(); 4.                teacher.setName("李芳"); 5.                teacher.setAge(23); 6.                teacher.setEducation("本科"); 7.                 System.out.println(teacher.introduction()); 8.            } 9.        } 复制代码 构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值  构造方法必须满足以下语法规则:  1、方法名与类名相同  2、没有返回类型 1.       public class  Teacher { 2.            private String name;  // 教员姓名 3.            // 构造方法 4.            public  Teacher() { 5.                name = "无名氏"; 6.            } 7.        } 复制代码 使用new关键字调用构造方法 1.        public class TeacherTest { 2.            public static void main(String[ ] args) { 3.                 Teacher  teacher = 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,String  pPosition) { 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.                Teacher  teacher  =  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注释?

温馨提示

学习Java,你可以更好地就业前途。
点击展开全文

更多推荐