package com.test;
public class OO {
/** 1.面向对象:C语言是面向过程的语言,关心函数的实现;
* java不关心具体的函数实现,而是在此基础上做了一个抽象(改进);
* java认为所有的方法(行为)是属于某个对象,那么面向对象首先思考的是对象和对象之间的关系,当我们思考清楚过后,我们才考虑具体的代码逻辑(过程);
* 面向对象首先关心的是对象是否有某种行为和属性,而最后才关心函数(行为)的实现。
**/
/** 2.类和对象(new)
* 访问修饰符 class 类名{
*属性
*方法(函数,行为)
* }
* 类:是一个类型的数据,是一个抽象的概念,是不能直接使用的,要使用类的属性和方法,必须通过类的实例对象(实实在在的一个对象:new关键字创建)。
* 类的属性如果没有手动初始化,基本数据类型的值是0,引用类型、字符串为null。
**/
/** 3.构造函数
* ①JDK为我们提供创建对象的一个方法;
* ②访问修饰符 类名(参数列表){//具体代码};参数列表为空,叫做默认构造函数,有参数列表,叫做有参构造函数。
* ③假如不写构造函数,JDK会提供一个默认的实现;当我们写了一个有参构造函数,那么默认的构造函数就不能被调用,我们必须手动写一个默认的构造函数(重写)。
* ④当调用默认或有参构造函数时,只有一个函数被调用。
**/
/*private String name;
private int age;
public String getinfo(){return name+"_"+age;}
public OO(String name,int age){System.out.println("OO(String name,int age)");}
public OO(){System.out.println("OO()");}
public static void main(String[]args){
OO oo = new OO("hello",20);
//System.out.println(oo.age);
//System.out.println(oo.getinfo());
}*/
/** 4.this指针
*代表当前的对象(谁去调用,谁就是当前对象)。
**/
/** 5.总结
*OO oo=new OO()
*new:实际在内存中分配了一个空间用于装载对象
*OO oo:引用类型
*person:句柄通过"="去引用真实的对象。
**/
private String name;
private int age;
public String getinfo(){return name+"_"+age;}
public OO(String name,int age){
this.name=name;
this.age=age;
}
public static void main(String[]args){
OO oo = new OO("hello",20);
System.out.println(oo.getinfo());
}
}