Day27-万物皆对象
在世间的任何事物,都可以成为对象,以至于我一度怀疑这个世界的真实性。也许我们只是生存在网络里。而网络的外端才是把我们创造出来的人,只是他们的文明比我们更高,我们无法发现。因为没有人知道宇宙的边界到底是什么。
扯个闲篇。没有对象的程序员可以自己new一个出来【来自程序员的烂梗】
Java中都是以类来作为单位的。
而类是什么?
类是class,也称为类型,类也可以理解为一个模板。
就像人类,人类可以按肤色分为黑种人、白种人、黄种人。只是属性不同,但是我们同属于人类。人类中封装了我们拥有人的属性,比如:头颅,四肢,躯干等等。也封装了我们拥有人的方法,比如:进食,运动,上厕所等等。
而拥有相同属性和相同方法的事物的集合,我们可以称为类。
//创建一个人类
public class Human(){
String name; //具有姓名的属性
char sex; //具有性别的属性
int age; //具有年龄的属性
/**
* 拥有进食的方法。
*/
void eat(){
System.out.println("吃东西");
}
/**
*
*/
void show(){
System.out.println("I am"+name+",I am "+age)
}
/**
* 拥有运动的方法
*/
void sport(){
System.out.println("运动");
}
}
属性:可以理解为一个名词。比如姓名就是一个名词
方法:可以理解为一个动作。比如进食就是一个动作
当然我们人类不仅仅只有这些属性和方法。以上只是简单举例。
那么比如猴子,他也有以上定义的姓名,年龄,性别的属性,也拥有进食和运动的方法,那它也是人类吗?
当然不是。我们可以根据生物的差异性,而衍生出成千上万的类。就像猴子有尾巴,而人没有。这样猴子就可以构建猴类,但人类和猴类又同属于生物类。因为我们也拥有同样的属性和方法。
那么具体怎么创建一个人呢?也就是怎么new呢?
public void TestHuman(){
public static void main(Strimg args[]){
Human Tony = new Human();
Tony.nam = "Tony";
Tony.age = "18";
Tony.sex = "male";
Tony.show();
}
}
通过 new 将类这个模板,具体的实例化,把他变成一个实际的例子。
变成了 Tony ,并赋予了他姓名,年龄,性别等等。拥有和人一样的属性。并让他调用show()方法,介绍自己。
控制台会输出: I am Tony ,I am 18
方法 method 可以改变他的返回类型。
public class Human(){
...
[中间省略,参照上面那个例子。]
...
public String speak(){
return "Emmmmmmmmm";
}
}
之前的返回类型为void,即空类型。就是没有返回。
但出来void以外的所有返回类型,都要又return 来接返回值。而返回值一定要为相应的返回类型。
之后调用的话。
Tony.speak();
控制台并不会输出。
只是调用了这个方法。
需要用变量来接收这个返回值。
如:String speak = Tony.speak();
那么这个 speak的值就变成了"Emmmmmmmmm"。
和Scanner input = new Scanner(System.in);
String name = input.nextLine();
一个道理。
而方法还分为有参方法和无参方法
即:
public class Human(){
...
[中间省略,参照上面那个例子。]
public void eat(String food,String tool){
System.out.println("使用"+tool+"吃"+food);
}
...
}
没有参数的方法,就是无参方法。
而有参数的方法,就是有参方法。
有参方法要给定方法一个参数或多个参数。
就像上面这个例子,
eat()方法,执行吃这个动作的话,肯定需要参数食物,就是吃什么?
总要有个东西,肯定需要工具,就是拿什么吃?
别说可以不用工具,用手也是工具,用嘴巴也是工具。
扯了半天。