其实学面向对象这么多天,我也一直不敢写。因为这的确很不好理解,我现在写了,当做加强印象吧,至于理解的是否正确,真的很担心。从面向对象这里开始,就有些迷茫了。
刚学的时候老师提了两个名词:面向对象和面向过程。并且进行了很长时间的赘述,可是我已经几乎忘了他说的初衷是什么了。
重新听了一遍录音,目前我的理解应该就是,面向对象是找合适的人去做合适的事。
面向过程就是亲力亲为。
恩。。。还是不懂。。。懂了以后马上过来补写。
随后提到的类和对象现在理解比刚学的时候深刻了一些。
类:一类事物的统称,比如人;车;书。。。
对象:就是类具体到个体。
比如人,具体到个体可以用cv心外無物!恩!他是一个很好很好的人!想到就会很开心!
再比如车,集体到个体的话,就行宝马,劳斯莱斯,布加迪等。
书的话,红楼梦,三国演义等等。
类就是一类事物的统称,包含了这类事物的行为与属性。
对象就是在这个类下创建的对象。
随后写了12个类与对象(12生肖)
package shengxiao;//包名
class Dragon{//类名
int age; //成员变量
String Skin;//成员变量
public void fly(){//成员方法
System.out.println("龙会飞")
}
}
public class Dragon {
public static void main(String[] args) {
Dragons Dragon = new Dragons();//创建龙的对象
Dragon.age = 1000;//对成员变量赋值.这里有英文的句号,很小,不便观察
Dragon.skin = "粗糙";//对成员变量赋值
Dragon.fly();//成员方法
System.out.println("龙都是皮肤"+Dragon.skin + "的");
}
}
现在对成员变量理解就是类里面的属性(比如一个人的名字,这是他固有的,且不需要用实际行动表现出来的,比如我的名字,马**,就算我不去做什么,我也是这个名字,这就是成员变量)
成员方法就是这一类的行为(比如我目前在学习,学习就是我的行为,是需要我付诸行动才可以变现出来的)
成员变量的定义是;
数据类型 变量名;
如 int age;
成员方法的另一是:
public void 成员方法名
如 public void study{}
大致了解了类和对象的区别,就该在主函数区里进行创建新的类。
类名 对象名 = new 类名;
这是创建了一个新的对象,new 的作用就是创建对象。
创建了对象以后,就该对它进行属性的赋予了。
对象变量的赋值模式是:对象名. 成员方法 = "根据上面定义成员变量时的数据类型进行赋值";
成员变量是int age;
那么新对象的成员变量定义就是 对象名.age = 123;(成员数据类型可能不同,所以需要特别注意,String就是字符串,double就是浮点型。)
成员方法的调用是 对象名. 成员方法;
用上面的例子Dragon,他的成员方法就是fly,对象使用成员方法时就是
对象名.fly();
目前,代码其实是一门直来直去的语言,他不需要过多的思考,需要的就是记住,这步应该做什么,怎么做,都是用固定的格式图套,包括前面的排序也是一样,写多了就记住了。所以这是我根绝男孩子学的比女孩子快的原因!因为他们的性子够直!
代码如下:package qianfeng;
import java.util.Scanner;
/*
在Java中定义类的格式:
自定义类:
class 类名 {
事物共有的属性描述; 【成员变量】
事物供有的行为描述; 【成员方法】
}
【注】 类名要符合明明规范,大驼峰命名法
【误区】
1. 类只是来描述同一类事物的共同属性,方法,但是不能确定属性的具体数值
2. 成员方法,必须在类的内部
*/
class SuperHero {
//以下【属性描述】 【成员变量】
String name;//名字的描述
int age; //年龄的描述
char sex; //性别描述
//以下【行为描述】 【成员方法】
public void sleep() {
System.out.println("站着睡觉");
} //睡觉行为的描述
public void fight() {
System.out.println("啊 哒~~~~");
} //打架行为的描述
}
public class TestClass {
public static void main(String[] args) {
//class SuperHero 是我们对于超级英雄一个描述,需要一个确定的超级英雄,一个对象
//Scanner sc = new Scanner(System.in);
//Arr.length 使用的是数组的元素个数【属性】
//sc.nextInt();
//类名 对象名 = new 类名();
SuperHero IRONMAN = new SuperHero(); //创建了一个SuperHero的对象 IRONMAN
// . 的 钢铁侠的名字
//这里是对IRONMAN 的属性进行赋值
IRONMAN.name = "钢铁侠";//对象.成员变量
IRONMAN.age = 40;
IRONMAN.sex = 'M';
//调用了IRONMAN 的行为
IRONMAN.sleep();//对象.成员方法
IRONMAN.fight();
System.out.println(IRONMAN);
/*
展示的是对象在堆区的首地址
qianfeng.SuperHero@15db9742
qianfeng 包名
SuperHero 类名
@表示在那里
15db9742 是内存的地址,【堆区】中对象所在内存空间的首地址
*/
System.out.println("Name:" + IRONMAN.name + " Age:" + IRONMAN.age +
" Sex:" + IRONMAN.sex);
SuperHero COA = new SuperHero();
//System.out.println(COA);
COA.name = "美国队长2";
IRONMAN = COA;
System.out.println(IRONMAN.name); //???
}
}