前言
C语言是面向过程的,关注的是过程,分析求解问题的步骤,通过函数调用逐步解决问题。
JAVA是基于面向对象的编程语言,关注的是对象,将一件事拆分成不同的对象,靠对象之间交互完成;面向对象注重的是过程,在整个过程中所涉及的行为,就是功能;面向对象注重的是对象,也就是参与过程所涉及到的主体,是通过逻辑将一个个功能实现连接起来。
例:面向过程:把冰箱打开->把东西放进去->把冰箱关起来
面向对象:打开冰箱,存储,关闭都是对冰箱的操作,是冰箱的行为。冰箱就是一个对象,所以只要操作冰箱所具备的功能,都要定义在冰箱内。
类:类就是一类对象的统称。对象就是这一类具体化的一个实例。
例:做月饼的模子就是一个类(相当于一个模板),通过模子(也就是通过类)做出来的月饼就是一个对象,所以月饼就是一个实体,一个模子可以实例化无数个对象。
创建类
基本语法
//创建类
class 类名 { //class为定义类的关键字
field : //成员属性(它是定义在类的内部,方法的外部)
method : //成员方法 描述一个对象的行为
}
//实例化对象
类名 对象名 = new 类名();
示例
class People{
public String name; //实例成员变量 public 为访问修饰限定符
public int age; //实例成员变量
//public String name = "张三"; //在这一般情况下不直接赋值
//public int age = 20;
//成员方法
public void eat(){
System.out.println("吃饭!");
}
}
public class Main {
public static void main(String[] args) {
People peo = new People(); //实例化对象
peo.name = "张三";//使用.来访问对象中的属性和方法
peo.age = 20;
peo.eat(); //打印成员方法
System.out.println(peo.name + " " + peo.age);//打印结果
}
}
结果
如果没有设置初值
class People{
public String name; //实例成员变量 public 为访问修饰限定符
public int age; //实例成员变量
}
public class Main {
public static void main(String[] args) {
People peo = new People();//实例化对象
System.out.println(peo.name + " " + peo.age);//打印结果
}
}
结果:默认name为null,age 为 0。null 在java中“空引用”,表示不引用任何对象。
方法
class People{
public String name; //实例成员变量 public 为访问修饰限定符
public int age; //实例成员变量
//成员方法
public void show(){
System.out.println("我叫" + name + ",今年" + age + "岁了");
}
}
public class Main {
public static void main(String[] args) {
People peo = new People();//实例化对象
peo.name = "李四";
peo.age = 21;
peo.show();
}
}
结果
static
修饰属性
class People{
public String name; //实例成员变量 public 为访问修饰限定符
public int age;
public static String name1;//静态成员变量
public static int age1;
}
public class Main {
public static void main(String[] args) {
People peo = new People();//实例化对象
peo.name = "李四";
peo.age = 21;
People.name1 = "张三";//使用static修饰的属性需要用类名访问
People.age1 = 20;
System.out.println(peo.name + " " + peo.age);
System.out.println(People.name1 + " " + People.age1);
}
}
结果
修饰方法
class People{
public String name; //实例成员变量 public 为访问修饰限定符
public int age; //实例成员变量
public static String name1;//静态成员变量
public static int age1;
//实例成员方法可调用static修饰的属性
public void show1(){
System.out.println("我叫" + name1 + ",今年" + age1 + "岁了。");
}
//static修饰的方法只能调用用static修饰的属性,不然就会报错
public static void show2(){
System.out.println("我叫" + name1 + ",今年" + age1 + "岁了。");
}
}
public class Main {
public static void main(String[] args) {
People peo = new People();//实例化对象
peo.name = "李四";
peo.age = 21;
People.name1 = "张三";//使用static修饰的属性需要用类名访问
People.age1 = 20;
peo.show1();
People.show2();//同样static修饰的方法需要用类名访问
}
}
结果
++
class People{
public static void eat(){
System.out.println("吃饭!");
}
public void func(){ //实例成员方法可调用static修饰的方法
People.eat();
}
public static void eat1(){
System.out.println("吃饭!");
}
public static void func1(){//static修饰的方法只能调用static修饰的方法
People.eat1();
}
}
public class Main{
public static void main(String[] args) {
People peo = new People();//实例化对象
peo.func();
People.func1();
}
}
结果: