Java学习基础知识
- 原创
- |
- 浏览:1150
- |
- 更新:
- |
- 标签: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注释?
END- 此文章非法爬取自百度经验