public class Function
{
//在JAVA语言里面函数叫做方法
//格式
// public static 返回值类型 方法名称(类型 参数1,类型 参数2,...)
// {
// 程序语句
// [return 表达式];
// }
//
//这里和C++一样存在重载。
public static void main(String args[])
{
System.out.println(add(1,2));
}
public static int add(int x,int y)
{
return x+y;
}
}
/*
class Person{
String name;
String GetName()
{
//return name;
//如果需要加入guanggong户籍就用下面这个
//他为什么可以直接这么加,是因为guangdong这个字符串和这个name它们
//都是String,都是类的对象,它重载了这个加号运算。
return "guangdong " + name;
}
}
public class Oop
{
public static void main(String args[])
{
//在JAVA里面类对象它是引用数据类型,必须用new来给它分配空间
Person p1=null;
p1=new Person();
p1.name="zhangsan";
System.out.println(p1.GetName());
}
}
*/
//在一个文件里面只能有一个public class
//其他的class 你不能写public
//你方法前面加上static表示你这个方法属于类的,就不用通过创建对象来访问其中的成员了。Static 变量一样的
class Person
{
public Person(String _name)
{
name=_name;
}
public String GetName()
{
return name;
}
private String name;
//这是构造块。在这个class里面用一个大括号扩起来的这段代码就称为构造块。
//什么叫构造块呢,你不是有构造函数吗,构造函数是创建这个对象的时候,肯定有一个函数被调用。同样的,构造块它也是这么一块代码你去创建一个对象的时候,那块代码肯定会被执行。在构造函数之前被调用。还一个静态代码块,就是前面加个static,
//无论你创多少对象,他都只执行一次,在实例化第一个对象前执行,而且静态代码块还是最先执行的,执行完之后
//才会调用创建对象的时候的静态代码块。
{
count++;
}
static void Printf()
{
System.out.println("do good person");
}
static int count;
};
public class Oop
{
public static void main(String args[])
{
Person p1=new Person("zx");
Person p2=new Person("gh");
System.out.println(p1.GetName());
Person.Printf();
System.out.println(Person.count);
}
//在JAVA里面有四种权限,private:本类可以访问
// default:本包可以访问
// protectd:本包可以访问,其他包的子类可以访问
// public:所有
//在继承关系里有两个特殊的概念。一个是抽象类,另外一个是接口
//先看看抽象类,它的定义是这样的
//abstract class 类名
//{
// 属性
// 普通方法
// //抽象方法
// //访问权限 abstract 返回值类型 方法名(参数);只需要声明,不需要实现
//}
//
//在来看看接口
//接口和抽象类比较类似。它也是定义了一些抽象方法,但是它还可以定义一些
//全局常量。实际上我们在抽象类里面也可以定义常量啊。我抽象类可以定义常量变量,各种方法。看样子抽象类的功能强于接口。为什么接口还有存在的必要呢
//那是因为在抽象类里面,一个子类只能继承一个父类,但是接口却可以突破这个限制。一个子类可以实现多个接口
}