Java学习基础知识

  • 原创
  • |
  • 浏览:1150
  • |
  • 更新:
  • |
  • 标签:java 

关于Java的基础学习

工具/原料

  • <p>Java学习基础知识</p>

具体的java几个问题:

  1. 1

     请先考虑以下几个问题:  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
  2. 1
    此文章非法爬取自百度经验

注意事项

  • 学习Java,你可以更好地就业前途。

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部
相关标签java