本文脉络
类与方法
https://blog.csdn.net/lucky534528795/article/details/89042910
变量
https://blog.csdn.net/lucky534528795/article/details/89042888
一、面向对象概述
1、main() 方法
main()是JAVA应用程序的执行入口;
是一个静态方法,一个类最多只能有一个main();
main()的执行是在类加载之后进行,此时不存在任何对象。只有在执行main()之后,才创建所需要的对象;
每一个类都可以有一个main(),这是对类进行单元测试的一个很方便的技巧
2、static块
static块会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法
//类的定义
class Person{
String name;
public Person(String name){
this.name=name;
}
//静态块
static{
System.out.println("static语句块执行");
}
}
//测试代码
public class Test {
public static void main(String[] args) {
Person p1=new Person("张三" );
Person p2=new Person("李四" );
Person p3=new Person("王五" );
}
}
/*
不管构建多少次Person类的对象实例,static{}都会被执行且只执行一次。
所以只会输出一次“static语句块被执行” */
当一个类中有多个static{ }时,执行完所有static{}语句块的内容,才会执行其他调用语句
二、使用面向对象
信息的隐藏和封装
通常将类的成员变量设置成private型,再由public的设置器和访问器来对private变量进行访问
设置器、访问器
隐藏的信息常常通过设置器和访问器进行设值和访问
//访问器:get开头的方法,如
public String getName() {
return name;
}
//设置器:set开头的方法,如
public void setName(String n){
name = n;
}//注:若形参名和成员变量名相同,变量名前要以this修饰
使用eclipse自动生成设置器和访问器
依次单击“Source”>> “Generate Getters and Setters…”,然后在打开的对话框中选择相应的属性进行创建即可
设置器
void setName(String name){ //方法为void型,无返回值
this.name = name;
}
访问器
public String getName(){ //方法返回值为变量的数据类型
return name;
}
构造器(构造方法)
构造方法会在对象实例化时被调用
作用是对创建的新对象进行初始化工作
每个类必须至少有一个构造方法(,系统会自带一个无参的构造方法)
//构造方法定义格式:
[访问修饰符] 类名([参数1][,参数2]…[,参数n]){
属性1= 参数1;
属性2 = 参数2;
……
属性n = 参数n;
}
//如
public 类名( 形参列表 ){
this.name = name;
.....
}
在一个类中,如果没有构造方法,系统将会自动提供一个空的构造方法,以构造类的对象
相反,若已经有了构造器,系统就不再提供一个空的构造方法
三、软件设计阶段的类图
类名:Student
+:表公有public
-:表私有private
#:表保护protect
前面无符号:缺省
‘:’后表示数据类型/函数的返回值类型
多个类的箭头表继承,由子类指向父类