我想一开始之所以想要用那么多时间写这博客,一方面是我不服,本来想着寒假自己没用多少时间学Java,等哪天整理好再去请教ta,可当我整理好问题想着去问ta时,却发现我们不再是好友,我于是便没有了这个想法,反正怎么都很尴尬。
我知道以前的我做很多事情都表现得不是很好,这集训以来我自己深刻反思了一段时间。也认识到往事以成舟,所以,最好的方式是现在开始更加努力。

当然这个不是现在的我一定要写博客理由,而是,我想变强,仅仅是内心一种强烈的想法。

参考文献及其它:
Java书,百度,博客;

当然前面写的Java总结也挺好可以看看我是博客
1、Java面向对象中类与对象的概念和使用

方法的定义:
方法就是一段可以重复调用的代码。

定义格式:
访问修饰符 返回值类型 方法名(){
方法主体
}

方法的返回值类型
void类型不需要返回值,其他类型的全部需要相对应的返回值。
//我们都学过C语言和C++,那么对比一下C语言与C++里的函数的返回值,然后你会发现这其实是它们的相通之处;

方法的重载:

//我们都知道写一个C语言或者C++的函数,然后调用这个函数时,必须要调用时函数的参数类型以及个数是相同才可以调用的。当然,一个函数里在调用另一个函数也一样,只要参数类型以及个数是一样就可以;

最后也要注意的是每个函数的名称是必须不同的;

Java方法名称不同,但是参数的类型和个数相同,通过传递参数的个数和类型不同来完成不同的功能。

定义类时,类中怎么没有定义主函数呢?
注意:主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。

对于 public static void main(String[] args)

(1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数。
  
  (2)static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。
  
  (3)void关键字表明main()的返回值是无类型。
  
  (4)参数String[] args,这是本文的重点。

类的定义
class 类名称{
// 属性;
//方法;
}

package RTFIL;
/**
 * @author asus
 *
 */
class Person{//个人类
    String name;//属性
    int age;//属性
    public void tell(){//方法
        System.out.println("姓名:"+name+"   "+"年龄:"+age);
    }
}
public class ClassDmeo01 {
    public static void main(String[] args) {//主类
	/**
	 * @param args
	 */
//        Person per = null;  //声明
//        per = new Person();  //**实例化操作,通过关键字new来实例化**
        Person per = new Person();//声明并实例化
    }
}

声明一个类需要通过一个关键字class,而class前面有没有加public 是没有影响的。

类与对象的关系:

类是对某一类事物的描述,是抽象的、概念上的意义:对象是实际存在的该类事物的每一个个体,也被称为对象或实例。

了解面向对象:

1、程序的发展历程:面向过程、面向对象。

2、解释面向过程和面向对象:(比如制作一个盒子)

面向过程:不去想做什么样子的盒子,随机取工具制作。

面向对象:先想好做一个什么样的盒子,再去找对应的工具去做。

面向对象的三大特征:
封装性:对外部不可见。
继承:扩展类的功能。
多态性:方法的重载。 对象的多态性。

方法的递归:
//这其实也很简单,学C时都学到递归是什么,其实精髓也就是函数自己调用自己,就递归;那么Java方法的递归,顾名思义;

方法递归调用就是方法自己调用自己。

例如:求1-100的和。

package java面向对象;
/**
 * @author asus
 *
 */
public class 递归调用 {

   public static void main(String[] args) {
	/**
	 * @param args
	 */
        System.out.println(sum(100));
    }
    //求1-100的和
     public static int sum(int n){
        if (n == 1)  //程序出口//这个很容易被初学者忽略,导致程序直接无法运行。
            return 1;   
        else 
            return n+sum(n-1);//调用自身
    }
}