Java学习---JAVA的类设计

基础知识

JAVA是由C/C++语言发展而来的纯面向对象语言,其基本元素包括:简单数据类型 和 复合数据类型(即类)。类是对客观事物的抽象描述,它有面向对象的四个特点,即:封装性、继承性、多态性和通信相关性。

类由属性和方法构成,类、属性、方法都通过修饰符限制如何使用。常用的修饰符包括:public、protected、private、static、final、abstract等等。JAVA语言中除了类以外,还存在抽象类和接口,其中抽象类是使用abstract修饰的类,其中包含了抽象的方法(即只有方法的申明,无方法体,而且抽象的方法都需要被其子类所覆盖),接口的关键字是interface,它仅包含使用finall修饰的成员变量和抽象方法。类之间的关系是继承(extends),接口之间的关系也是继承(extends),类与接口之间的关系是实现(implements)。

在类中的方法有三类,分别是:构造方法、普通方法和主方法。构造方法是对象初始化的方式,一般存在多个构造方法,根据带入的参数构造不同的对象。主方法是程序的入口,其固定格式为:public static void main(String [] args)。类中的方法存在多态性,分别是:重载和覆盖。其中,重载是在同一类中具有相同名称的方法,而参数的类型和个数不同;覆盖是具有继承关系的父类和子类之间具有相同名称的方法,且参数的类型和个数,以及返回值均相同。

使用类来声明对象时,就是产生不同的个体,即实例化。且需要使用new操作符来申请内存空间。当该对象不再需要时,JAVA有三种垃圾回收方法,分别是:JVM周期性自动回收、调用System.gc()方法 和 定义finalize()析构方法。

JAVA语言标识符命名规则如下:

JAVA语言的标识符由字母、数字、下划线(_)、美元符号($)组成,并且首字符不能使用数字;

不能把关键字作为标识符

标识符通常由多个有意义的英文单词构成,且长度一般在30个字符以内

为了保证良好的编程风格,清晰标识各类符号,Java语言有如下编程规范:

● 类名和接口名:单词首字母大写,其余字母小写,如SamDoc;

● 方法名和变量名:首单词小写,其余单词的首字母大写,其余字母小写,如bothEyesOfDoll;

● 包名:字母全部小写,如com.abc.dollapp;

● 常量名:采用大写形式,单词之间以下划线“_”隔开,如DEFAULT_COLOR_DOL。

所有的关键字都是小写。

代码实例

举例矩形类 和 长方体类,仿制圆形类和柱形类

 1 class rectangle{
 2   double width;
 3   double length;
 4   public rectangle(){
 5     width = 10;
 6     length = 10;
 7   }
 8   public rectangle(int width, int length){
 9     this.width = width;
10     this.length = length;
11   }
12   public rectangle(double width, double length){
13     this.width = width;
14     this.length = length;
15   }
16   public double getCircle(){
17     return 2*(width + length);
18   }
19   public double getArea(){
20     return width * length;
21 } }
22
23 class cube extends rectangle{
24   double height;
25   public cube(){
26     width = 10;
27     length = 10;
28     height = 10;
29   }
30   public cube(double width1, double length1, double height){
31     width = width1;
32     length = length1;
33     this.height = height;
34   }
35   public double getVol(){
36     return widht * length * height;
37   }
38   public double getArea(){
39     return 2*(width * length + width * height + length * height);
40   }
41 }
42 class example{
43   public static void main(String [] args){
44     rectangle r = new rectangle(20, 20);
45     cube c = new cube(11, 22, 33);
46     System.out.println("矩形的面积" + r.getArea());
47     System.out.println("长方体的体积" + c.getVol());
48     System.out.println("长方体的面积" + c.getArea());
49 } }

设计根据年月输出当月日历的程序,对比以下2个关于日期程序

 1 public class date{                 //该类只存在一个主方法,相当于一个C语言程序
 2 public static void main(String [] args){
 3      int year = 2013;
 4      int month = 3;
 5      int day = 0;
 6      boolean isLeap = false;
 7
 8      if((year % 400 == 0) ||  ((year % 100 == 0) && (year % 4 == 0))){
 9            isLeap = true;
10      } else {
11            isLeap= false;
12      }
13      switch(month){
14        case 1:  case 3:  case 5: case 7: case 8: case 10:  case 12:
15          day = 31;
16          break;
17        case 2:
18           day = if(isLeap)?29:28;
19           break;
20        default:
21           day = 30;
22           break;
23      }
24      for(int i=0; i<day; i++){
25        if(i % 7 == 0)System.out.println();
26        System.out.print((i+1)+"天"+"/t");
27  } } }

按照本班同学为例,编写人类,同学类

 1 class human{
 2   String name;
 3   Int age;
 4   Char gender;
 5   public human(String name, int age, char gender){
 6      This.name = name;
 7      This.age = age;
 8      This.gender = gender;
 9   }
10   public void setName(String name){
11 This.name = name;
12   }
13   public void setAge(int age){
14 This.age = age;
15   }
16   public void setName(char gender){
17 This.gender = gender;
18   }
19   public String getName(){
20 return name;
21   }
22   public int getAge(){
23 return age;
24   }
25   public char getGender(){
26 return gender;
27   }
28   public void showMessage(){
29     System.out.println(“姓名:”+name+”,年龄:”+age+”,性别”+gender);
30 } }
31 //学生类
32 class classmate extends human{
33   String school;
34   public classmate(String name1, int age1, char gender1, String school){
35      name = name1;
36      age = age1;
37 gender = gender1;
38 this.school = school;
39     ...
40   }

原文地址:https://www.cnblogs.com/ftl1012/p/9347545.html

时间: 2024-08-28 19:08:01

Java学习---JAVA的类设计的相关文章

Java学习笔记_25_Collections类

25.Collections类: Collections类是一个工具类,用来对集合进行操作,它主要是提供一些排序算法,包括随机排序.反相排序等. Collections类提供了一些静态方法,实现了基于List容器的一些常用算法. Collections的一些方法列表: · void sort(List): 对List内的元素进行排序. · void shuffle(List): 对List内的元素随机排序. · void reverse(List): 对List内的元素进行逆序排列. · voi

java学习一目了然&mdash;&mdash;File类文件处理

java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) File(File parent,String child) 创建文件: boolean createNewFile(); 创建文件夹: boolean mkdir(); 用于创建一层未定义文件夹 boolean mkdirs(); 用于创建多层未定义文件夹,相当于多个mkdir() 删除文件/文件夹

Java学习笔记——File类之文件管理和读写操作、下载图片

Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图片 文件和文件夹 相关函数 (boolean) mkdir() 创建此抽象路径名指定的目录  (boolean) mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录. (boolean) delete() 删除此抽象路径名表示的文件或目录 (boolean) createNe

Java学习笔记_19_String类

19.String类: 1>String类的构造方法: · 利用字符串构造一个字符串对象: String str = "HelloWorld": · 无参构造一个字符串对象: String str = new String(); · 传递参数生成一个字符串对象: String str = new String("HelloWorld"); · 由字符数组生成一个字符串对象: String str = new String(char s[ ]); · 由字符数组

Java学习2-日期类和Collection集合

Java学习2-日期类和Collection集合 一.日期类 1.date类 1.1 构造方法 date类用来获取时间,将毫秒值转化为时间.常用构造方法有如下: public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒). public Date(long date):分配Date对象并初始化此对象,以表示自从标准基准时间(称为"历元(epoch)",即1970年1月1日00:00:00 GMT)以来的指定毫秒数. 无参构造可以获得当前的系统时间,有参

Java学习笔记—复用类

复用代码是Java众多引人注目的功能之一. 一般而言,实现代码重用java提供了两种方式:组合以及继承. 组合:新的类由现有类的对象所组成.(复用现有代码的功能,而非它的形式) 继承:按照现有类的类型组建新类.(在不改变现有类的基础上,复用现有类的形式并在其中添加新代码). 组合 class Engine{ public void start(){} public void stop(){} } class Door{ public void open(){} public void close

Java学习笔记1——类和对象

面向对象 对象:万物皆对象 面向对象 类:模子,属性+方法,类是对象的类型,是具有相同属性和方法的一组对象的集合 对象属性:对象拥有的各种特征,"对象有什么" 对象方法:对象执行的操作,"对象能干什么" 类与对象的关系/区别:类是抽象的,仅仅是模版:对象是看得到,摸得着的具体实体.例如:'手机'类,对象为iPhone6,Lumia920 Java中的类 定义类:Java程序都以类class为组织单元 创建一个对象 //1.定义一个类 public class Tel

Java学习之字符串类

String在Java中是一个类类型(非主类型),是一个不可被继承的final类,而且字符串对象是一个不可变对象.声明的String对象应该被分配到堆中,声明的变量名应该持有的是String对象的引用. 运行期计算得到的字符串会得到一个新的字符串.tag="hel"+tag; 这种现象是Java为了效率而赋予String的特殊性.字符串是不可变的,字符串被分配了空间和初始值后值就不可变化.一旦变化,就会放弃原有的对象而分配新的空间给变化后的字符串.频繁地赋新值,会给程序运行效率带来极大

[Java学习] Java方法重载

在Java中,同一个类中的多个方法可以有相同的名字,只要它们的参数列表不同就可以,这被称为方法重载(method overloading). 参数列表又叫参数签名,包括参数的类型.参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同. 重载是面向对象的一个基本特性. 下面看一个详细的实例. 1. public class Demo{ 2. // 一个普通的方法,不带参数 3. void test(){ 4. System.out.println("No parameters");