类和对象-第六天

来源:互联网 发布:周涵成都书店知乎 编辑:程序博客网 时间:2024/05/16 09:22
面向对象三大要素:封装 继承 多态
类的好处
类:抽象
对象:实际存在
包括:属性(静态的描述)和方法(动态的描述)
public class Xxx{
属性
方法
String name;
int age;

public void 方法名(){....}

public 数据类型 方法名(){ return 值;}
}


得到对象  类 对象= new 类();
使用对象属性: 对象.属性
使用对象方法: 对象.方法名()


练习: 猫猫大战
猫类(Cat) hp atk
打架类(Fight) 方法 vs() : 得到两只猫,依次对打,猫的剩余hp=猫原来的hp-另外一只猫的atk,直到一方hp<=0,判断输赢
默认第一只猫先攻击第二猫
主类:调用 vs();








补充:基本数据类型: byte short int long float double char boolean 
引用数据类型 :对象 String 数组
万物皆对象




补充:属性: 可以放一切东东
String name
int age;
对象 String 数组








方法三: 带参无返回值  public void  方法名(参数列表){....}
参数列表三要素: 参数类型, 参数数量, 参数顺序
参数列表中的类型可以是一切对象
参数列表格式: 数据类型1 变量名1,数据类型2 变量名2........


搞懂什么是形参,什么是实参
形参:写在方法中    (被传递过来的值)
实参:确确实实的值 (传递过来的值)
形参的名字不一定非要等于实参的名字,只需要他们之间的参数类型, 参数数量, 参数顺序必须要匹配




当我们需要在某个类中得到某个对象
(1) new
(2) 传参




方法的重载:
 1:方法必须在同一个类中
 2:方法的名字必须相同
 3: 方法的参数列表必须不同




练习:
计算类:Calc
方法1:接受一个整数,并且打印他的绝对值
方法2:接受一个整数,并且打印他的平方
方法3:接受两个int整数,求和
方法4:接受两个long整数,求和
方法5,接受两个double小数,求和
方法6:接受两个float小数,求和
要求:方法3,4,5,6需要重载


补充:三元表达式 (三目运算符)
语法格式: 数据类型 变量=条件?值1:值2;






如果条件为真,则变量的值为值1,否则为值2
注意:值1和值2的数据类型应该和变量的数据类型想匹配
      它只能用来替换简单的if-else 结构


例子:String str= m>5?"吃饭":"吃面";
练习://有一个 int n;如果输入的字符为a 则n=1,否则n=2;








方法四:带参带返回 public 数据类型 方法名(参数列表){ ...return 值;}








总结1:类中的所有方法
1 public void xx(){}
2 public 数据类型 xx(){return 值;}
3 public void xx(参数列表){}
4 public 数据类型 xx(参数列表){ ...return 值;}
总结2:属性,参数列表,数据返回类型 都可以写一切对象


练习: 喝水问题
Drink类 
方法 :  drink1() :喝10L水     drink2() :喝20L水
主类:
初始化100L水,打印输出剩余多少水;
先被喝10L水,打印输出剩余多少水;
再被喝20L水,打印输出剩余多少水


-------------------------------------------
对象数组--数组中能够放一切的对象
int[]
String[]
double[]
Cat[] arr=new Cat[10];


语法格式:类名[] 数组名=new 类名[长度];


异常:java.lang.NullPointerException
找错:肯定是.的前面的对象为null


引用数据类型假如在属性中只有申明,则默认为null




兔子类: Rabbit 属性: name  speed  
比赛类:  Match  
方法1:getFast() 找出速度最快的那只兔子的名字    打擂台
方法2:arrays()  根据速度从小到大排序兔子的姓名  冒泡排序
主类:初始化3只兔子(默认他门的速度都不相同),装进一个长度为10的兔子数组,然后调用以上两个方法

































原创粉丝点击