面向对象
一、类和对象的概念
1.类和对象是面向对象方法的核心概念。类是抽象的,对象是实际存在的,也称实例。对象内容放在堆内存,对象名放在栈内存。
2.类的语法结构
[修饰符] class 类名
{
定义构造方法;
定义属性;
定义方法;
}
提示:上述代码中的修饰符可以是public、final、abstract或者完全省略
3.对象创建及使用
(1)声明对象
类名 对象名
(2)实例化对象.
对象名 = new 构造方法()
a 、属性调用
对象名.属性
b、方法调用
对象名.方法名([参数])
示例:
public class Hero {
String name;
int age;
char sex;
public void run(int speed) {
System.out.println(speed+"m/s的速度飞速狂奔");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Hero hero1 = new Hero();
hero1.name="黑暗游侠";
hero1.age=20;
hero1.sex='M';
System.out.println("英雄的姓名:"+hero1.name);
System.out.println("英雄的年龄:"+hero1.age);
System.out.println("英雄的性别:"+hero1.sex);
hero1.run(30);//使用该对象调用run()方法
}
}
二、方法使用
1.方法声明
代码如下(示例):
[<修饰符>]<返回类型><方法名> ([参数列表])
{
方法体
}
说明:
1.修饰符有private、缺省访问修饰符、protected和public
2.方法不能在方法中再声明其他方法
public class Hero {
String name;
int age;
public void battle() {
System.out.println(name+"在肆无忌惮的战斗,他的年龄只有"+age+",可他的血量只有1%了...");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Hero hero1 = new Hero();
hero1.name="黑暗游侠";
hero1.age=15;
hero1.battle();
}
}
2.方法参数传递
代码如下(示例):
public class Parameter {
//该方法用于在方法中互换形参值
public void change(String x,String y){
String temp;//定义一个临时变量
System.out.println("***形参改变之前***");
System.out.println("x="+x+"\t"+"y="+y);
//形参值互换
temp=x;//将x值赋值给变量temp
x=y;//将变量y值赋值给变量x
y=temp;//将temp值赋值给变量y
System.out.println("***形参值互换后***");
System.out.println("x="+x+"\t"+"y="+y);
}
public static void main(String[] args){
Parameter param=new Parameter();//创建Parameter实例
String a="10",b="20";
System.out.println("---调用change()方法前---");
System.out.println("a="+a+"\t"+"b="+b);
param.change(a, b);//调用方法
System.out.println("---调用change()方法后---");
System.out.println("a="+a+"\t"+"b="+b);
}
}
分析:
调用方法之后,a、b的值仍然为10和20
即使形式参数的值改变了,但实际参数的值不会改变
三、可变形参方法
1.可变方法声明
[<修饰符>]<返回类型><方法名>(变量类型...变量名){方法体}
说明:
"…“表示定义参数类型的方式,再变量类型和变量名之间使用
可变参的特点:
1.只能出现在参数列表的最后
2.”…"前后有无空格都行
2.可变形参与数组参数的不同
a.定义方式不一样
public static void testVarargs(String…users);//可变形参
public static void testArray(Stringll users);//数组形参
b.调用方式不一样
testVarargs(“张小文”,”王艺儒”,“李晨生”;//可变形参
testArray(new String[] {“张小文”,“王艺儒”,“李晨生”});//数组形参
c.参数位置不一样
数组形式的参数可位于形参列表的任意位置,形参处于形参列表的最后(即一个方法中最多只能有一个个数可变的形参)。
四、构造方法
1.定义
- 构造方法是一种特殊的方法
- 它是一个与类同名且返回值类型为同名类类型的方法
2.特点
- 构造方法的命名必须和类名完全相同。普通方法可以和构造方法同名,但是必须带返回值。
- 不能直接调用,必须通过new运算符在创建对象时才会自动调用
总结
- 类是一个具有自身属性和行为的独立单位。方法的四个要素是:方法名、参数列表、返回类型和访问修饰符
- 构造方法是一类名称与类同名,且没有返回类型的特殊方法
- 对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化
- 使用“对象名.属性”引用属性,以及“对象名.方法(参数列表)”调用方法
- 如果在定义方法时,在最后一个形参的类型后增加三点“…”,则表明该形参
- 可以接受多个参数值,多个参数值被当成数组传入