程序面向过程和面向对象
c语言与c++是面向过程的,关注的重点也是过程,将每个问题步骤都分析出来,从底层而进行分析,面向过程中所涉及的行为叫做功能、
Java是面向对象的过程,涉及了参与了过程的主体对象,通过一个个的逻辑来进行实现
面向过程例如将大象放到冰箱中,步骤过程是关注点,插电、打开冰箱、放入大象,关闭冰箱
举例:面向对象它将所有的步骤都统一归为了对象(冰箱)所做的行为,冰箱作为一个对象它的功能就是对象的行为
类
类是上述一类对象的统称,对象就是这一类的具体化实现
面向对象的话就是代码类来描述客观世界中的事物一种方式,类中包含了类的属性,以及类的行为
例如类为动物 类的属性:哪些动物 类的行为:捕猎 睡觉 等。。。
new 关键字用于创建一个对象的实例.
使用 . 来访问对象中的属性和方法.
对象可以通过实例化创建多个
创建类的基本语法
class <class_name>{ // 创建类
field; //成员属性
method; //成员方法
}
//实例化对象
<class_name> <对象名> = new <class_name>();
//通过.来访问成员属性或者行为
代码实现
类中的代码:
class Person{
public String name;
public int age;
public void sleep(){
System.out.println("睡觉");
}
public void eat(){
System.out.println("吃饭");
}
}
}
main函数:
public class test {
public static void main(String[] args){
Person person=new Person();//通过new来实力化出来的对象
Person person1=new Person();
Person person2=new Person();
//可以通过对象实例化多个
person.name="zhangsan";
person.age=18;
person.eat();
//成员的方法进行引用需要通过对象来引用
类中的成员:
字段
类中的字段、成员属性以及成员变量三者称呼都是相同意思
例如:
class Person{
public String name;
public int age;
public class test {
public static void main(String[] args){
Person person=new Person();
System.out.println(person.name);
System.out.println(person.age);
这里我们要知道成员的变量默认值是0或者null
bollean类型的默认值为false
这里的默认是指不引用任何对象
方法
这里我们刚才提到的方法就是可以描述对象的行为类似于函数
class Person{
public String name="张三";
public int age=19;
public void show(){
System.out.println("我是"+name+",年龄"+age);
}
}
public class test {
public static void main(String[] args){
Person person=new Person();
person.show();
构造方法 (construction method)
在实例化对象的时候会被自动调用到的方法, 方法名字和类名相同, 用于对象的初始化.
虽然我们前面已经能将属性就地初始化, 但是有些时候可能需要进行一些更复杂的初始化逻辑, 这时候就可以用到构造方法.
static静态修饰字段代码:
public class test {
public static void main(String[] args){
Person person=new Person();
person.a++;
person.b++;
System.out.println(person.a);
System.out.println(person.b);
Person person1=new Person();
person1.a++;
person1.b++;
System.out.println(person1.a);
System.out.println(person1.b);
输出结果
这里我们可以看到被static修饰后的变量被对象访问后都是使用的一块共同的空间。
static修饰方法:
静态方法属于类,而不属于类的对象。
上图中被static修饰的变量可以直接在方法中调用,没有修饰的变量则不可被调用
上图中被static修饰的方法不需要实例化的对象依然可以调用并输出结果
这里我们可以知道了静态方法和实例是无关的, 而是与类相关联
注意:静态方法不能调用非静态的成员与非静态的方法,这里的非静态成员都是与实例对象相关联的!!!