JAVA学习笔记(6) - 类概念
JAVA学习笔记(六) - 类概念
类的创建
import java.util.*;
/*
* 创建类-Person
* 从具体每个人中,抽取共性的描述信息-属性(静态)
* name,age,gender,height,weight,ID,birthday
* 从具体每个人中,抽取共性的动作信息-方法(动态)
* eat,sing,dance,sleep,talk,smile,count
* 类中主要包含:静态的属性和动态的方法
*/
public class Person
{
//静态的属性
String name;
int age;
char gender;
int height;
float weight;
String ID;
Date birthday;
InputStream is;
Socket s;
//动态的方法
public void eat()
{
System.out.println("eat");
}
public int count(int x, int y)
{
return x + y;
}
}
student类
public class Student
{
//属性
int sno;
String name;
int age;
char gender;
//方法
public void study()
{
System.out.println("study");
}
public int add(int x, int y)
{
return x + y;
}
//构造函数
public Student(){}
public Student(int sno, String name, int age, char gender)
{
this.sno = sno;
this.name = name;
this.age = age;
this.gender = gender;
}
}
public class Test
{
public static void main(String[] args)
{
//通过对象,使用类中的方法,属性时,通过.调用
Student s1 = new Student();
int result = s1.add(10, 20);
System.out.println(result);
/*Student s2 = new Student(1, "zhangsan", 25, '男');
System.out.println(s2.sno);
System.out.println(s2.name);
System.out.println(s2.age);
System.out.println(s2.gender);
s2.add(10, 20);
Student s3 = new Student(2, "lisi", 20, '女');
s3 = s1;*/
}
}
类的成员变量
成员变量
/*
* 类的成员变量
请定义一个交通工具(Vehicle)的类,包含属性:速度speed、体积size,方法:设置速度setSpeed(int speed)、
移动move()、加速speedUp()、减速speedDown()。在测试类中实例化一个交通工具对象,通过方法初始化speed和size的值,
并输出相关信息,调用加速、减速方法对速度进行改变。
*/
public class Vehicle
{
int speed;
int size;
public Vehicle()
{
}
public Vehicle(int speed, int size)
{
this.setSpeed(speed);
this.setSize(size);
}
public void setSpeed(int speed)
{
this.speed = speed;
}
public void move()
{
}
public void speedUp(int i)
{
speed += i;
}
public void speedDown(int i)
{
speed -= i;
}
public void setSize(int size)
{
this.size = size;
}
}
public class Test
{
public static void main(String[] args)
{
Vehicle v = new Vehicle(150, 100);
System.out.print("车车的速度为" + v.speed + " 体积为" + v.size);
v.speedUp(5);
System.out.print("\n开始加速。。。\n现在的速度为" + v.speed);
v.speedDown(5);
System.out.print("\n开始减速。。。\n现在的速度为" + v.speed);
}
}
类的构造方法
/*
* 构造方法
编写Java程序,模拟简单的计算器。定义名为Calculator的类,包含整数变量n1和n2,应声明为私有。
编写构造方法,可以初始化n1和n2,为该类定义加addition、减subtration、乘multiplication、
除division等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。
在main方法中创建Calculator类的对象,调用各个方法并显示计算结果。
*/
public class Calculator
{
private int n1;
private int n2;
public Calculator()
{
}
//初始化成员变量
public Calculator(int n1, int n2)
{
this.setN1(n1);
this.setN2(n2);
}
//getter and setter 方法
public int getN1()
{
return n1;
}
public void setN1(int n1)
{
this.n1 = n1;
}
public int getN2()
{
return n2;
}
public void setN2(int n2)
{
this.n2 = n2;
}
// '+'
public int addition(int n1, int n2)
{
return n1 + n2;
}
// '-'
public int subtration(int n1, int n2)
{
return n1 - n2;
}
// '/'
public int multiplication(int n1, int n2)
{
return n1 / n2;
}
// '*'
public int division(int n1, int n2)
{
return n1 * n2;
}
}
public class Test
{
public static void main(String[] args)
{
Calculator cal = new Calculator(45, 15);
int n1 = cal.getN1();
int n2 = cal.getN2();
System.out.println(n1 + "+" + n2 + "=" + cal.addition(n1, n2));
System.out.println(n1 + "-" + n2 + "=" + cal.subtration(n1, n2));
System.out.println(n1 + "/" + n2 + "=" + cal.multiplication(n1, n2));
System.out.println(n1 + "*" + n2 + "=" + cal.division(n1, n2));
}
}
类的综合实例
/*
* 类的成员变量与方法、构造方法
* 在程序中,经常要对时间进行操作。我们可以自己实现一个时间类,来满足程序中的需要。
* 定义名为MyTime的类,其中有三个整型变量:时hour、分minute、秒second,
* 为了保证数据的安全性,将这三个成员变量声明为私有。为MyTime类定义构造方法,
* 以方便创建对象时初始化成员变量。再定义diaplay方法,用于将时间信息打印出来。
* 为MyTime类添加以下方法addHour(int hou)、addMinute(int min)、
* addSecond(int sec)、subHour(int hou) 、subMinute(int min)、
* subSecond(int sec)分别对时、分、秒进行加减运算。
*/
public class Mytime
{
private int hour;
private int minute;
int second;
/**
* @param hour
* @param minute
* @param second
*/
public Mytime(int hour, int minute, int second)
{
this.hour = hour;
this.minute = minute;
this.second = second;
}
public int getHour()
{
return hour;
}
public void setHour(int hour)
{
this.hour = hour;
}
public int getMinute()
{
return minute;
}
public void setMinute(int minute)
{
this.minute = minute;
}
public int getSecond()
{
return second;
}
public void setSecond(int second)
{
this.second = second;
}
/**
*
*/
public Mytime()
{
}
/*
* 为MyTime类添加以下方法addHour(int hou)、addMinute(int min)、
* addSecond(int sec)、subHour(int hou) 、subMinute(int min)、
* subSecond(int sec)分别对时、分、秒进行加减运算。
*/
//增加秒
public int addSecond(int sec)
{
int day=0;
day=addMinute((sec+this.second)/60);
this.second=(sec+this.second)%60;
return day;
}
//增加分钟
public int addMinute(int min)
{
int day=0;
day=addHour((min+this.minute)/60);
this.minute=(min+this.minute)%60;
return day;
}
//增加小时
public int addHour(int hou)
{
int day=(hou+this.hour)/24;
this.hour=(hou+this.hour)%24;
return day;
}
//减少秒
public int subSecond(int sec)
{
int day=0;
this.second=this.second-sec%60; //秒数相减
if(this.second<0) //减后秒数小于0的话
{
this.second+=60; //分钟减一 秒数为正
day=subMinute(1); //这减去的一分是否会减去一天
}
day+=subHour(sec/60); //每60分钟时钟+1
return day;
}
//减少分
public int subMinute(int min)
{
int day=0;
this.minute=this.minute-min%60;
if(this.minute<0)
{
this.minute+=60;
day=subHour(1);
}
day+=subHour(min/60);
return day;
}
//减少小时
public int subHour(int hou)
{
int day=0;
if(hou<=this.hour) //当减少的时间小于当前小时时
{
this.hour-=hou;
return 0; //天数不前移
}
this.hour=this.hour-hou%24; //得到一个-24到24之间的‘时’
if(this.hour<0) //这个‘时’小于0的话就向后移一天,’时‘变为正数
{
this.hour+=24;
day++;
}
day+=hou/24;
return day;
}
public void show()
{
System.out.println(this.hour+"点"+this.minute+"分"+this.second+"秒");
}
}
public class Test
{
public static void main(String[] args)
{
Mytime mt=new Mytime(21,42,03);
int day;
int hour=3;
int minute=17;
int second=86457;
mt.show();
System.out.println("********************");
day=mt.addHour(hour);
System.out.print(hour+"小时后是");
mt.show();
System.out.println("这是第"+day+"天后了");
day=mt.addMinute(minute);
mt.show();
System.out.println(minute+"分钟后是第"+day+"天后了");
day=mt.addSecond(second);
mt.show();
System.out.println(second+"秒后是第"+day+"天后了");
System.out.println("********************");
day=mt.subSecond(2);
mt.show();
System.out.println("是第"+day+"天前了");
day=mt.subMinute(720);
mt.show();
System.out.println("是第"+day+"天前了");
day=mt.subHour(35);
mt.show();
System.out.println("是第"+day+"天前了");
}
}