面向对象编程(中2)

1.JavaBean
规范:
1.在JavaBean中的成员属性必须是私有的。
[private] 数据类型 变量名称;
2.提供一个公共的无参数的构造方法
[public]
3.为私有的属性提供公共的set和get方法。
set和get方法的命名规则:
[访问修饰符] void set属性名称(数据类型 参数名称){
}
[访问修饰符] 返回值类型 get属性名称(){
return 返回值;
}
set方法作用:通过set方法给属性赋值
get方法作用:通过get方法获取属性的值
作用:可以对数据进行临时存储,而且还能以面向对象的方式解决问题。
注意:boolean 类型的数据在提供set和get或者is方法时。

示例:

/**
定义 JavaBean
*/
public class JavaBeanTest{
private String name;
private int age;
private String classNum;
private boolean flag;
public JavaBeanTest(){
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public void setClassNum(String classNum){
this.classNum=classNum;
}
public String getClassNum(){
return classNum;
}
public void setFlag(boolean flag){
this.flag=flag;
}
public boolean isFlag(){
return flag;
}
public static void main(String[]args){
JavaBeanTest t=new JavaBeanTest();
t.name
}
}

再新建一个类

public class Test1{
public static void main(String[]args){
JavaBeanTest t=new JavaBeanTest();
t.setName("张三");
t.setAge(20);
t.setClassNum("java001");
t.isFlag(true);
System.out.println(t.getName()+t.getAge()+t.getClassNum()+t.getFlag());
}
}


2.static关键字
1.静态变量

实例变量:能通过对象访问的变量的都属于实例变量。(类中所有没有被static修饰的成员变量都属于实例变量)(所谓的实例变量就是说,只有先创建出来对象,才会为实例变量分配内存空间)

示例:

/**
实例变量
*/
public class Test2{
String name="zhangsan";
static int age=20;
String address="beijing";
public static void main(String[]args){
Test2 t1=new Test2();
System.out.println(Test2.age);
System.out.println(t1.name+t1.address);
Test2 t2=new Test2();
Test2 t3=new Test2();
Test2 t4=new Test2();
System.out.println(t1.age+t2.age+t3.age+t4.age);
}
}

static关键字可以修饰变量,方法,代码块。
static关键字修饰的变量称为静态变量或类变量。
语法:
staitc 数据类型 变量名称=变量值;
注意:static只能修饰全局变量
static修饰变量的特点:
static修饰的变量属于类,而不属于某个对象。
static修饰的变量只有一个副本,也就是说无论创建多少个对象,访问静态变量都是同一个。
static修饰的变量可以通过类名.变量名的方式访问,也可以通过对象名来访问,但是不建议使用对象访问类变量。

JVM加载static修饰的变量或方法的原理:
当JVM加载类时,会自动给类中所有被static修饰的变量和方法开辟空间,没有被static修饰的变量和方法都属于实例变量或实例方法,只有创建对象了才会为实例变量和实例方法开辟内存空间。

2.静态方法
由static 修饰的方法称为静态方法或者类方法。
特点:
在静态方法中不能访问非静态方法或非静态变量
在非静态方法中可以访问静态方法或静态变量
在静态方法中不能使用this和super关键字。
语法:
[访问修饰符] static 返回值类型 方法名称(参数列表){

}

示例:

/**
静态方法
*/
public class Test3{
int num=100;
static int num2=200;
public static void display(){
System.out.println("静态方法");
}
public void test(){
System.out.println(num2);
display();
}
public static void main(String[]args){
Test3 t=new Test3();
t.test();
}
}

3.静态代码块
语法:static{
}
注意:静态代码块位于类中,但是不在任何方法里面。
作用:就是为了给成员静态变量进行初始化。

示例:

/**
静态代码块
*/
public class Test4{
static int num;
static String name;
static{
num=100;
name="zhangsan";
}
public static void main(String[]args){
System.out.println(Test4.num+Test4.name);
}
}


3.package打包
为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题,Java引入 了包(package)。
在使用许多类时,类和方法的名称很难决定。有时需要使用与其他类相同的名称 。包基本上隐藏了类并避免了名称上的冲突。
用package来声明包,package语句必须是java源文件中的第一条语句。(若无这 条语句,则放置在无名包下)
在package语句中,用"."来指明包(目录)的层次。包对应着文件系统的目录层 次结构。 
如:package com.bjjava;编译后对应的类文件位于com\bjjava目录下。'
创建包的语法:
package 包名;
注意:包名一般都小写;包名中不要出现java。
编译并运行:
在当前目录下生成带包结构的字节码
javac –d . Employee.java
在指定目录下生成带包结构的字节码
javac –d D:\share Employee.java
运行:
java 包名.类名
包名.类名 叫做类的全限定名

示例:

/**
package 带包的类
*/
package com.slw.test;
public class Test5{
public static void main(String[]args){
System.out.println("带包的类");
}
}

示例2:

package sun.derun;
import com.slw.test.*;
public class Test6{
public static void main(String[]atgs){
Test5 t=new Test5();
}
}


4.import导包
要导入某个包中的所有类可以用:import 包名.*
如上例:import  com.dr.slw.*;
在同一包中的类可以直接互相引用,无需import语句。 
建议把自定义的类都放置在包中。
注意:import一定要位于package的下面。

5.常用名词
OOP:面向对象编程
OOA:面向对象的分析
OOD:面向对象的设计
overload:方法重载
构造方法
变量
声明


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章