
面向对象之类相关知识
提示:以下是本篇文章正文内容,下面案例可供参考
一、类的定义在java语言里,对象是一组描述对象的属性和方法的集合。其中属性表明对象的状态,方法表明对象的行为。而一个对象具有那些属性和方法,由类决定。(对象具有属性和方法)
属性:对象具有的各种特征
方法:对象执行的操作
在这里插入代码片
package first;
public class Person { //定义person类
private String name; //私有成员变量 表示姓名
public void setName(String n) {
name=n;//公有方法
}
public String getName() {
return name; //公有方法
}
}
二、类的成员变量和方法
类的成员变量定义了类的属性,所定义的成员变量,可以被类内的所有方法访问。
package first;
public class Person { //定义person类
String name;
char sex;
int age;
public void sayHello() {
System.out.print("hello");
}
public static void main(String[] args) {
Person h=new Person();
h.sayHello();
}
}
一个方法的定义,从整体上来说也是包含声明和方法体两部分。若方法有返回值,则在方法体中用return 语句指明要返回的值。格式如下:
return 表达式; 或者 return (表达式);
表达式可以是常量,变量,对象等。return语句后面表达式的数据类型必须与成员方法中给出的返回值的类型一致。
三、对象的创建之实例化过程 1.创建对象想要实现类的属性和行为,必须创建具体的对象,即实例化一个类。
类名 对象名
第一种方式: Person person=new Person(); 第二种方式: Person person; person=new Person();2.访问对象的属性和行为
对象名.对象成员; 例如: Person.name="吴方言"; person.sayHello();四、类的访问修饰符
访问权限修饰符: public default private 在定义类的时,访问控制修饰符只能一个,每个Java程序的主类必须是public类。类必须具有同文件名称相同的名字。
修饰类: public abstract final
修饰类的成员变量: public private protected final static
修饰类的成员方法: public private final static abstract
任何修饰符都没使用的,属于默认修饰符
成员变量定义的类型修饰符意义:
static :静态变量 相对于实例变量
final:常量 其值不能改变
transient: 暂时性变量 用于对象存档
volatile: 贡献变量 用于发线程的共享
方法定义之前的类型修饰符的意义:
static: 类方法 可以通过类名直接调用
abstract: 抽象方法 没有方法体
final: 方法不能重写
native:集成其他语言的代码
synchronized: 控制多个并发线程的访问。
package first;
public class Person { //定义person类
private int num=5;
public int get() {
return num;
}
public static void main(String[] args) {
Person person =new Person();
int t=person.get();//正确访问
person.num;//不能访问私有成员变量;
System.out.print("t="+t);
}
}
2.static 修饰符
package first;
public class Count {
private int serial;//实例变量
static int counter=0;//类变量
Count(){
counter++;//实例计数器
serial=counter;
}
int getSerial() {
return serial;
}
int getCounter() {
return counter;
}
public static void main(String[] aargs) {
Count c1=new Count();
Count c2=new Count();
System.out.println("c1的serial的值:"+c1.getSerial()); //1
System.out.println("c1的counter的值:"+c1.getCounter());
System.out.println("c2的serial的值:"+c2.getSerial()); //2
System.out.println("c2的counter的值:"+c2.getCounter());
System.out.println("类的counter值:"+Count.counter);//通过类名访问静态变量;
}
}
注意:为什么main方法必须是static的呢?
main方法是程序的入口点,程序由main 方法开始执行,此时没有对象,因此main方法不可能是实例方法。否则程序就没有办法启动执行。