概述
类和对象
概念:类是一种事物描述,是抽象的,概念上的定义:对类是实际存在的该类事物的每个实体,因而也称实例。
类的语法结构:
[修饰符] class 类名
{
定义构造方法;
定义属性;
定义方法;
}
注释:
修饰符可以是 public、final、abstract 或者完全省略修饰符。
(1)创建防御塔( TowerDefense)类。
(2)在该类中定义两个属性,第一个属性是横坐标x,第二个属性是纵坐标y,数据类型都是整型int。
(3)定义一个方法showMessage()显示数据,在该方法中对防御塔的坐标位置进行输出。
(4)在类中定义main()方法,实例化TowerDefense对象,通过引用变量给对象属性赋值。调用showMessagel)方法输出结果。
参考代码如下:
pubhic class TowerDefenseint X,{
int y;
public TowerDefense(l
System. out. printIn("防御塔已经被实例化了");
}
public static void main(Stringll args) {
TowerDefense td = new TowerDefense();
td.x = 10;
td,y = 20;
System. out. printIn("防御塔横坐标=" + td.x +’纵坐标=' +td.y);
}
效果图如下:
方法详情
方法声明
语法格式如下
[<修饰符>]<返回类型><方法名>([参数列表]){方法体}
方法调用
由于main()方法是程序的入口,如果在类中调用指定方法,则按照如下步骤进行操作.
(1)在类的main0方法中创建可以调用方法的实例。
(2)将实例赋值给指定的引用变量,通过引用“变量.方法名”的形式调用方法。
调用Hero类中的battle()方法的具体操作见示例
public class Hero{String name;int age;
public void battle(){
System.out. printIn(name+"在肆无忌惮地战斗,他的年龄只有"+age+"可他的血量只有1%了... ");
public static void main(String[] args) {
Hero hero = new Hero(); // 创建英雄对象hero.name="暗夜魔王”;//为name属性赋值
hero.age=15;//为age属性赋值
hero. batte(); // 使用该对象的battle()方法
}
可变形参方法
可变方法声明
[<修饰符>1<返回类型> <方法名> (变量类型…变量名)}{方法体}
可变方法调用
下面程序定义了一个形参个数可变的方法。具体操作见示例。
public class VarargsTest {
//定义形参个数可变的方法
public static void testVarargs(int X, String...users) {for (String user: users) {
System. out. printIn(user);
public static void main(String[] args) {
//采用可变个数形参的方法调用
testVarargs(3,"张小文"”王艺儒”,"李晨生");}
可变参数与数组参数的区别
以下为数组参数调用方法:
public class ArrayTest {
//采用数组形参来定义方法
public static void testArray(String[] users) {//users当成数组处理
for (String user : users) {
System. out. printIn(user);
}
}
public static void main(String[l args) {
//采用数组形参的万法调用
testArray(new String[]{"张小文","王艺儒","李晨生"})
}
}
1.定义方式不一样
(1)采用可变个数形参来定义方法,代码如下:
pubic static void trVrarstringin . usesi
(2)采用数组形参来定义方法,代码如下:
public static void tstArystrinlg users);
2.调用方式不一样
(1)采用可变个数形参的方法调用,代码如下:
testVarargs(“张小文”,‘王艺儒,“李晨生);
(2)采用数组形参的方法调用,代码如下:
testArray(new Stringll"张小文",“王艺儒",'李晨生));
3.参数位置不同
如果有多个形参,数组形式的参数可以处于形参列表的任意位置,但是个数可变的形参处于形参列表的最后,即一个方法中最多只能有一个个 数可变的形参。
对比这两种方法,很显然第一种形式 上更加简洁。实际上,即使是采用形参个数可变的形式来定义方法,调用法方法时也样可以为个数可变的形参传递一个数组。
构造方法
定义:在类定义中,有一类特殊的方法,此类方法的名称与类名完全一致,在创建对象时,用于成员变量进行初始化,此类方法被称为构造方法。
特点:创建一个构造方法(Construction method)和倒建个其他方法的过程 是相同的,但需要注意的定,不使用void造方法的名称必须与此类的名称完全相同:此外,构造方法不能有返回值,在构造方法的名称前面也不使用void关键字进行修饰。
例题:创建士兵类(Soldiers),在该类中定义有参构造方法,该方法有一个String类型参数name,代表土兵的姓名,两个int类型的变量x和y,分别表示士兵被实例化后所在的坐标位置,x代表横坐标,y代表纵坐标。在主方法中使用for循环创建5个土兵对象,每个士兵对象的姓名以及x、y坐标是通过用户在控制台输入的。
public Soldiers(String name,int x,int y){
System.out printIn("英雄名字:”" +name+"初始化横坐标='+x+"纵坐标='+y);
}
public static void main(String[] args) {
//创建Scanner对象,用于接收控制台输入的数据
Scanner input=new Scanner(System.in);
for(int i=0;i<5;i++){
System. out.printIn("请输入第"+(i+1)+"个土兵的名字:);String name=input.next();
System. out. printIn("请输入横坐标:");
int x=input.nextInt();
System.out. printin("请输入纵坐标:");
int y=input.nextInt();
11通过有参构造方法创建Soldiers对象
Soldiers s=new Soldiers(name,x,y);
}
}
思路:(1)创建士兵类( Soldiers) 。
(2)在该类中定义一个 有参数的构造方法,该方法包含-个String类型的形参变量name和两个int类型变量的x、y,在构造器中输入该士兵信息。
(3)创建main()方法,在该方法中创建Scanner对象,用于接收用户从控制台输入的信息,并在main()方法中创建一个 循环次数为5的循环,在该循环中使用户在定义的构造方法创建Soldiers 对象。
效果图如下:
总结:构造方法是在类中定义的特殊方法,该方法的名称与类名完全一致。 构造方法的作用是创建实例对象。如果在类中没有创建用户自定义的构造方法,Java 会提供一个 缺省的默认无参构造方法。
利用“new构造方法([参数列表])”用于创建对象实例。
注:不要把可变参数与数组参数弄混
最后
以上就是帅气大门为你收集整理的Java笔记的全部内容,希望文章能够帮你解决Java笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复