目录
1.面向对象和面向过程
1.1面向对象:java c++
关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来方便开发,一切皆对象,且具有松耦合的特点。
1.2面向过程:c
关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。注重的是过程,在整个过程中所涉及的行为,就是功能。所有事情都是一个个独立的方法,性能较高。
2.类和对象的介绍
2.1类统称:
表示一类事物所具有的共同特征与行为。
1类的创建(class)
a)基本语法:
class Person{
field;//成员属性
method;//成员方法
}
b)主类:
任何一个源文件有且只有一个主类(public class),并且源文件名称需要和主类保持一致。
//主类
public class Test {
}
c)类的命名:
采用大驼峰命名法,及所有单词的首字母全大写。(和源文件命名同类要求)
注意:变量的命名采用小驼峰(除了第一个单词首字母小写,其它的单词首字母大写)
d)一个源文件中可以有若干个普通类。
2.类的实例化
定义一个类只是规定了一类对象所具备的属性和行为,根据类来产生对象称为类的实例化。
3.类的成员
类的成员可以包含以下:字段、方法、代码块、内部类和接口等。
4.通过对象调用类中的属性
public static void main(String[] args) {
//类的实例化,产生一个Person类的对象。
Person per = new Person();
per.name = "张三";
per.age = 10;
per.sex = "male";
}
方法:要通过引用数据类型来访问属性或者方法的使用“.”操作符。
5.属性
属性的默认值:基本数据类型
类中的成员变量(定义在类中的属性)与对象有关,当有对象产生时,才会开辟内存,分配空间。
Test test = new Test();
System.out.println(test.a);
引用数据类型默认值为null:
Person per = new Person();
System.out.println(per.name);
定义类时给属性赋值(默认值):
class Person{
//属性
String name = "晚晚";
int age = 10;
String sex = "female";
//行为
void eat(){}
void sleep(){}
void work(){}
}
public class Test {
//成员变量(与对象有关)
int a;
public static void main(String[] args) {
Test test = new Test();
System.out.println(test.a);
Person per = new Person();
System.out.println(per.name);
}
}
6.类中的成员方法
class Person{
//属性,成员变量
String name;
int age;
String sex;
//行为 成员方法
void show(){
System.out.println("My Name is:"+name+",My age is:"+age);
}
}
//主类
public class Test {
//成员变量(与对象有关)
int a;
public static void main(String[] args) {
Test test = new Test();
System.out.println(test.a);
Person per = new Person();
Person per1 = new Person();
System.out.println(per.name);
per.name = "fgy";
per.age = 12;
per1.name = "lj";
per1.age = 23;
per.show();
per1.show();
}
}
总结:在类中的成员方法和成员变量与对象强相关,有了对象之后才能使用。
7.static修饰的用法
1.修饰变量(类属性)
当一个类中的属性,该类的所有对象值都相同,例如国籍,此时这个属性不再与具体的对象相关,而与所在的类相关,属性使用static修饰,表示类属性。
注意:被static修饰的属性存储在JVM方法区,所有的对象共享此变量(及该变量的所有对象有且只有一个)
//国籍,类属性,所有对象有且只有一份
static String country;
Person per2 = new Person();
Person per3 = new Person();
Person per4 = new Person();
per2.country = "中国";
System.out.println(per3.country);
System.out.println(per4.country);
注意:java中的static一定不可能出现在方法中。(比如:static int a = 10;)会出现非法表达式开始的错误。
2.修饰方法(类方法)
静态方法:类中使用static修饰方法(类方法,与对象无关)
static方法直接使用 类名称.方法名来调用。
问题:a) 在成员方法中能否调用静态方法/类域?可以
b) 在静态方法中能否调用成员方法/成员域?不可以
3.修饰代码块(静态块)
4.修饰内部类
8.常量
一旦定义后就无法修改的变量。常量使用final修饰,一般与static搭配使用。
//常量,定义时必须初始化,并且之后无法修改。
final static String country = "中国";
注意:常量命名是所有单词全大写,多个单词以_分割。
2.2对象:
就是这一类具体化的一个实例。一般用关键字new来产生对象。(注意:主方法main存在于主类之中,有new就有新空间,在堆上有空间)