java中类与对象的详解

 很多java初学者在学习面向对象的时候总会一头雾水,其实结合现实生活最容易理解了,毕竟艺术源于生活,编程也来源于生活。java类与对象学习总结:

  类与对象是java中最基本的概念,这就好比是盖一座摩天大楼,我们学会这些基本概念并且理解透彻,才能打下坚实的基础,伴随着努力和创意我们能将java发挥到极致,能将java应用这一座“摩天大楼”盖得与众不同。

  首先我们明确一个概念,什么是类?什么是对象?

  类是对象的抽象,对象是类的具体。(这句话很深奥,会不会让你想到武林高手说的一些话)用通俗易懂的话说,类是模糊的,抽象的,不占用内存的,代表着一类的事物。人类是一个类,禽类是一个类,并没有明确指谁,只是因为特征和行为相近,所以归为一类,但它并不占用世界这个“内存”,亦即它并不真实存在。而对象是明确的,具体的,真实存在的。例如天上的月亮,例如我正在写博客的这台电脑,这些所有真实存在占用宇宙内存的东西都是对象。

  通过我上一段的阐述,我们能看得出来,是以什么来划分类?

  在日常生活中,我们以特征和行为来划分类。而类在java中又是以什么来划分的呢?

  对应于特征和行为,是属性和方法。在程序中我们用属性来描述一个对象的特征,用方法来描述一个对象的行为。由此我们可以知道,所有的属性和方法要赋给对象才有意义。

  综上所述,我们有类,就必须要创建对象,要不这个类就没有用,有了对象之后,才有类中的属性,才能类中的调用方法。(抽象类除外)那现在的问题就是,如何在程序中创建对象,如何在这个对象创建之后调用方法?在此我们用一个小程序来进行说明。场景是“李四每看一小时电视剧,学分就减少一分”。当然啦,每看一小时java视频教程,学分就增加一分。

  首先我们要新建两个类,一个是李四属于的Student类,另一个是电视剧属于的TV类。而学分是李四的属性,时长是电视剧的属性。

  

//创建一个学生类
  public class Student{
  //定义学生类的属性
  private String name;
  private int score;
  //定义设置和获取姓名的方法
  public void setName(String n){
  name=n;
  }
  public String getName(){
  return name;
  }
  //定义设置和获取学分的方法
  public void setScore(int s){
  score=s;
  }
  public int getScore(){
  return score;
  }
  //定义一个看电视的方法
  public void watch(TV tv){
  setScore(getScore()-1);
  if(tv.getTime()<=0)
  System.out.println(name+"看了"+tv.getName()+"电视剧,减少到"+score+"个学分。");
  }
  }
  //新建一个TV类
  public class TV {
  //定义TV类的属性值
  private String name;
  private int time;
  //定义一个设置和获取电视名字的方法
  public void setName(String n){
  name=n;
  }
  public String getName(){
  return name;
  }
  //定义一个设置和获取电视时长的方法
  public void setTime(int t){
  time=t;
  }
  public int getTime(){
  return time;
  }
  }

  现在有了类,我们要来创建一个李四和电视剧这两个对象,来完成我们想做的事。创建对象又叫做实例化。创建对象有两个方法,一个是构造方法,一个是普通方法。构造方法的格式为:

  public 类名(数据类型 形参名,...){

  }

  //定义方法

  public 返回值类型 方法名(数据类型 形参名,...){

  }

  调用方法的格式为对象名.方法名

  如下文中用new创建对象也属于构造方法,要注意构造方法名必须也类名完全一致,还有不能有返回值类型

  

//先新建一个类Manager
  public class Manager{
  public static void main(String [] args){
  //创建TV对象tv,调用TV类中方法
  TV tv=new TV();
  tv.setName("abc");
  tv.setTime(15);
  //创建Student类对象stu,调用Student类中的方法
  Student stu=new Student();
  stu.setName("李四");
  stu.setScore(20);
  System.out.println(stu.getName()+"总共有"+stu.getScore()+"个学分。");
  while(tv.getTime()>0 ){
  tv.setTime(tv.getTime()-1);
  stu.watch(tv);
  }
  }
  }

  由上我们可知创建对象和调用方法的方式。

  方法重载。方法重载是定义在同一个类中,同一个方法实现不同的操作。写的时候,必须要遵守两个条件:1.方法的名字必须要完全一致,包括大小写。2.方法所带的参数个数,参数类型,参数顺序必须要有一个不同.

  生活中例如这样一个场景:我去买东西,今天买了衣服,明天买了水果,后天买了家具。同样是买这个方法,参数不同。而如何调用这个方法,就根据参数来决定。



你可能感兴趣的:(java类与对象)