任务一.静态变量
1.源代码
class StaticDemo{
static int x;
static int y;
static public int getX() {
return x;
}
static public void setX(int newX) {
x=newX;
}
public void setY(int newY) {
y=newY;
}
public static int getY() {
return y;
}
}
public class ShowDemo{
public static void main(String[] args) {
System.out.println("静态变量 x="+StaticDemo.getX());
System.out.println("静态变量 y="+StaticDemo.getY());
StaticDemo a=new StaticDemo();
StaticDemo b=new StaticDemo();
a.setX(1);
a.setY(2);
b.setX(3);
b.setY(4);
System.out.println("静态变量 a.x="+a.getX());
System.out.println("实例变量 a.y="+a.getY());
System.out.println("静态变量 a.x="+b.getX());
System.out.println("实例变量 a.y="+a.getY());
}
}
2.结果截图
3.原因分析
4.静态变量和实例变量的区别
二.构造方法
class Trangle
{
double sideA,sideB,sideC,area,length;
boolean boo;
public Trangle(double a,double b,double c)
{
sideA=a;sideB=b;sideC=c; // 参数a, b, c分别赋值给sideA, sideB, sideC
if(a+b>c&a+c>b&b+c>a) //a, b, c构成三角形的条件表达式
{
boo=true;// 给boo赋值
}
else
{
boo=false;// 给boo赋值
}
}
double getLength()
{
return sideA+sideB+sideC;// 方法体,要求计算出length的值并返回
}
public double getArea()
{
if(boo)
{
double p=(sideA+sideB+sideC)/2.0;
area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;
return area;
}
else
{
System.out.println("不是一个三角形,不能计算面积");
return 0;
}
}
public void setABC(double a,double b,double c)
{
sideA=a;sideB=b;sideC=c;// 参数a, b, c分别赋值给sideA, sideB, sideC
if(a+b>c&a+c>b&b+c>a)//三角形条件表达式
{
boo=true;//给boo赋值。
}
else
{
boo=false;// 给boo赋值
}}
}
class Lader
{
double above,bottom,height,area;
Lader(double a,double b,double h)
{
above=a;bottom =b;height =h; // 方法体
}
double getArea( )
{
return (above+bottom)*height/2;// 方法体,,要求计算出area返回
}
}
class Circle
{
double radius,area;
Circle(double r)
{
radius =r;// 方法体
}
double getArea( )
{
return 3.1415926*radius*radius;// 方法体,要求计算出area返回
}
double getLength( )
{
return 2*3.1415926*radius;// getArea方法体的代码,要求计算出length返回
}
void setRadius(double newRadius)
{
radius=newRadius;
}
double getRadius( )
{
return radius;
}
}
public class AreaAndLength
{
public static void main(String args[ ])
{
double length,area;
Circle circle=null;
Trangle trangle;
Lader lader;
circle=new Circle(10); //创建对象circle
trangle=new Trangle(5,8,10); //创建对象trangle
lader=new Lader(5,8,10); //创建对象lader
length=circle.getLength();
System.out.println("圆的周长:"+length); // circle调用方法返回周长并赋值给length
area=circle.getArea();
System.out.println("圆的面积:"+area); // circle调用方法返回面积并赋值给area
length=trangle.getLength();
System.out.println("三角形的周长:"+length); // trangle调用方法返回周长并赋值给length
area=trangle.getArea();
System.out.println("三角形的面积:"+area); // trangle调用方法返回面积并赋值给area
area=lader.getArea();
System.out.println("梯形的面积:"+area); // lader调用方法返回面积并赋值给area
trangle=new Trangle(12,34,1); // trangle调用方法返修改三个边的代码,要求将三个边修改为12,34,1
area=trangle.getArea();
System.out.println("三角形的面积:"+area);// trangle调用方法返回面积并赋值给area
length=trangle.getLength();
System.out.println("三角形的周长:"+length); // trangle调用方法返回周长并赋值给length
}
}
2.结果截图
3.构造方法的使用说构造方法是一种特殊的方法,与一般的方法不同是:
(1)构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
(2)构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
(3)不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor)构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:(1)构造方法名与类名相同. (2)
,
也没有返回类型
(3)
每个类可以有零个或多个构造方法
(4)
构造方法在创建对象时自动执行
三.验证是否为闰年
class Exercise2010
{
int year;
public void set (int y)
{
year=y;
}
public boolean isleap()
{
if ((year%4==0 && year%100!=0) || (year%400==0)) return true;
else
return false;
}
}
public class TestExercise2010
{
public static void main(String [] args)
{
Exercise2010 exer = new Exercise2010();
exer.set(2017);
boolean flag=exer. isleap();
if (flag == true)
System.out.println(2017 +"是闰年 ");
else
System.out.println(2017 +"不是闰年 ");
}
}
4.结果截图
四.Student类设计
1.源代码
package student;
public class student
{
private String name;
private int age;
private boolean sex;
private double score;
//get/set方法用来获取/设置学生实例对象的信息
public String getname()
{
return name;
}
public void setname(String name)
{
this.name=name;
}
public int age(){
return age;
}
public void setage(int age)
{
this.age=age;
}
public boolean getsex()
{
return sex;
}
public void setsex(boolean sex)
{
this.sex=sex;
}
public double getscore()
{
return score;
}
public void setscore(double score)
{
this.score=score;
}
static boolean woman=true;
static boolean man=false;
public static void main(String[] args)
{
student me= new student();//对学生类实例化
//对学生信息赋值
me.setname("邢全阳");
me.setage(19);
me.setsex(man);
me.setscore(100.0);
//输出学生信息
System.out.println("姓名:"+me.getname()+"\n年龄:"+me.age()
+"\n性别:"+me.getsex()+"\n成绩:"+me.getscore()
);
}
}
2.结果截图
3概念说明
(1)类对象包含三个基本要素,分别是对象标识、对象状态和对象行为。
每一个对象必须有一个名字以区别于其他对象,这就是对象标识;状态用来描述对象的某些特征;对象行为用来封装对象所拥有的业务操作。
举例说明,对于教师Joe而言,包含性别、年龄、职位等个人状态信息,同时还具有授课的行为特征,那么Joe就是封装后的一个典型对象。
对于银行账户类而言,有取款和存款的行为特征,但实现细节对于客户而言并不可见,所以在进行ATM提款交易的过程中,我们并不知道交易如何进行,对应账户是如何保存状态的,这就体现了对象的封装。