类:就像一个模板 类里面的“对象”具有共同状态、属性;
属性名臣一般来说都是小写。
若有多个单词组成,后面的单词的第一个字母大写。
e.g.prettyBaby
对象:包含某种特性的个体(创建对象——实例化);
注意点:
//类名与java文件名要相同
———————————————————————————————————————————
一、格式:
1.设计类Hero;
public class Item {
String name;
int price;
}
2.创建对象;
public class Item {//类名Item
String name;
int price;//创建属性;
public static void main(String[] args) {
Item potion = new Item();//在Item类中创建新对象potion;
potion.name = "血瓶";//对象+.属性 创建属性
potion.price = 50;
Item shoe = new Item();//类似
shoe.name = "草鞋";
shoe.price = 300;
Item sword = new Item();
sword.name = "长剑";
sword.price = 350;
}
}
二、方法
有类名、属性,还可以设计对应属性的一些“专属能动特性”——能做什么、有什么.....
//这里的方法可以对应到c、python中的函数;
命名:
方法是一个类的动作行为,所以一般都是以动词开头的,比如 keng ...如果有多个单词,后面的每个单词的第一个字母使用大写,比如 addSpeed;
e.g.
//坑队友
void keng(){
System.out.println("坑队友!");
}
//获取护甲值
float getArmor(){
return armor;
}
//增加移动速度
void addSpeed(int speed){
//在原来的基础上增加移动速度
moveSpeed = moveSpeed + speed;
}
三、练习
为英雄类Hero设计几个新的方法:
1. 超神 legendary(),无参数,无返回类型
2. 获取当前的血量 getHp(), 无参数,有float类型的返回值
3. 回血 recovery(float blood), 有参数 float类型参数 blood表示本次恢复的血量,无返回类型
package com.my.Item;
//面向对象
public class Item {
String name;
float hp;
float armor;
int movespeed;
//创建“坑队友”这一方法
void keng(){
System.out.println("坑队友");
}
//创建"获取护甲值"这一方法(将要返回护甲值这一浮点型变量)
float getArmor(){
return armor;
}
//创建“增加移动速度”这一方法,其中有整型参数speed
void addSpeed(int speed){
//在原来的基础上增加移动速度;
movespeed += speed;
}
//超神
void legendary(){
System.out.println("超神!");
}
//获取当前血量
float getHp(){
return hp;
}
//回血
void recoverery(float blood){
hp += blood;
}
public static void main(String[] args) {
Item hero = new Item();
hero.name = "Simon";
hero.movespeed = 350;
hero.hp = 1000;
hero.armor = 500;
System.out.printf(hero.name + "当前的血量是:" + hero.hp + "\n");
System.out.println(hero.name + "当前的速度是" + hero.movespeed);
System.out.println("回血ing");
hero.recoverery(100);
System.out.println("现在的血量是:" + hero.hp);
hero.addSpeed(600);
System.out.println("目前的移动速度为" + hero.movespeed);
hero.legendary();
System.out.printf("目前的护甲值是" + hero.getArmor());
}
}
/*创建对象的一个例子*/
public class Item{
//构造方法? 与普通方法的异同?
//在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
public Item(String name){
//这个构造器仅有一个参数:name
System.out.println("小狗的名字是 : " + name );
}
public static void main(String[] args){
// 下面的语句将创建一个Puppy对象
Item myPuppy = new Item( "tommy" );
}
}
/*创建对象的第二个例子*/
public class Item{
int ItemAge;
//
public Item(String name){
System.out.println("小狗的名字是:" + name);
}
//获取年龄值
public void setAge(int age){
ItemAge = age; //开辟一个ItemAge对象 在后续可以进行值返回与引用
}
//输出年龄值
public int getAge(){
System.out.println("小狗的年龄是" + ItemAge);
return ItemAge;
}
//主方法
public static void main(String[] args) {
//创建对象
Scanner s = new Scanner(System.in);
System.out.println("请输入小狗的姓名:");
String name = s.nextLine();
//通过setAge来设定小狗的年龄——对象名+.+方法名
System.out.println("请输入小狗的年龄");
int Age = s.nextInt();
//输出小狗的信息
Item puppy = new Item(name);
puppy.setAge(Age);
puppy.getAge();
System.out.println("变量值" + puppy.ItemAge);
}
}