栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

面向对象编程(二)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象编程(二)

面向对象

一、静态变量
一个类可以实例化很多对象,各个对象分别占据自己的内存,示例代码如下:

class Customer{
String name;
}
public class StaticTest1{
public static void main(String[ ] args){
Customer zhangsan = new Customer();
zhangsan. name ="张三";
Customer lisi = new Custcomer();
lisi.name ="李四";
    }
}

在main中定义了两个对象,两个对象都有不同的name,如果要保存所有对象的共有信息,此时代码如下:

class Customer{
String name;
String bankName;
}
public class StaticTest2 {
public static void main(String[ ] args){
Customer zhangsan = new Customer();
zhangsan. name="张三";
zhangsan. bankName ="香港银行";
Customer lisi = new Customer();
lisi. name="李四";
lisi.bankName ="香港银行";
    }
}

同样的信息保存了两次,浪费空间,那么如何只用一个空间保存呢,只要将bankName定义为静态变量即可,在前面加入其关键字static,代码如下:

class Customer{
string name;
static String bankName;
}
public class StaticTest2{
public static void main( String[]args){
Customer zhangsan = new Customer();
zhangsan.name ="张三";
zhangsan. bankName ="香港银行";
Customer lisi= new Customer();
lisi. name = "李四";
System. out. println(" lisi.bankName =" +lisi. bankName);
    }
}

静态变量可以通过“对象名.变量名”来访问,一般推荐“类名.变量名”。
静态变量可以用来保存:
1、保存跨对象信息;
2、存储对象个数;

二、静态函数
1、静态函数就是在普通函数的定义前加上关键字static,示例代码如下:

class Customer{
String name;
static String bankName;
static void setBankName ( String bankName){
Customer. bankName = bankName;
    }
}
public class StaticTest4 {
public static void main ( String[ ] args){
Customer zhangsan = new Customer();
zhangsan. name="张三";
Customer. setBankName("香港银行");
Customer lisi = new Customer();
lisi.name = "李四";
System. out.println("lisi. bankName =" +lisi.bankName);
}

静态函数可以通过“类名.函数名”来访问,也可以通过“对象名.函数名”来访问。
需要注意的是在静态函数调用时对象还没有创建,因此在静态函数中不能直接访问类中的非静态成员和成员函数,也不能使用关键字this,否则会报错。

三、静态代码块
静态代码块是对所有对象共同信息进行初始化,并对所有对象只执行一次。实例代码如下:

class Customer{
String name;
static String bankName;static{
bankName = "香港银行";
System.out. println("静态代码块执行");
    }
}
public class StaticTest5 {
public static void main( String[ ] args){
Customer zhangsan = new Customer();Customer lisi = new Customer();
    }
}

静态代码块经常用来进行类属性的初始化。

四、封装
实现封装需要两个步骤:
1、将不能暴露的成员隐藏起来;
2、用公共方法来暴露对隐藏成员的访问可以给函数加上修饰符public,将该方法定义为公共的。示例代码如下:

class Customer {
String name;
String sex;
private int age;
public void setAge(int age){
if(age<0||age>100){
System.out. println( " age无法赋值");
return;
}
this.age = age;
}
public int getAge(){
return this.age;
}
}
public class EncTest2
public static void main(String[ ] args){
Customer zhangsan = new Customer();
zhangsan. setAge(25);
System.out. println(" zhangsan.age = " + zhangsan. getAge());
    }
}

需要注意的是私有成员只有在定义它的类的内部被访问,在类的外部不能被访问。一般情况下,可以将成员变量定义为private,通过函数public函数对其进行访问。

五、包的使用
Java允许把多个类收集在一起构成为一组,称作包(package),包便于组织任务,以及使自己的任务和其他人提供的代码库相分离。
包是一种组织类的方式,包中可以包含任意数量的类,一般包中的类的用途是相关的。
Java中用package语句来将一个Java源文件中的类打包一个包,package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包,(若缺省该语句,则指定为无名包),它的格式为:package pkg1[.pkg2[.pkg3…]]。
为了能使用Java中已提供的类,我们需要用import语句来引入所需要的类,格式为:import package1[.package2…].(classname |*)。示例如下:

package Package1;
public class cam1
{
public static int num=0;
}
import Package1.cam1;
public class cam2
{
public static void main(String args[])
{
cam1 a=new cam1();
a.num++;
System.out.println(a.num);
    }
}

值得注意的是:
1、在源代码中, “ package chinasei;”表示该源文件中的所有类都位于包chinasei中。package语句必须放在源代码文件的最前面,也可
以不指定 package语句,相当于将类放在默认包中,不过指定包,使用更加方便、可靠。
2、在Java中,推荐包名字的字母小写,例如chinasei’'"bank”等,为了便于阅读,有时
候还用“.”隔开,例如“school. admin"school. stu”等。
3、在将类放入某个包中之后,包将会用专门的文件夹来表示,例如上面的Customer类,编译出来的。
4、如果要用命令行来运行某个包甲的类,必须首先到达包目录所在的上一级目录。
5、使用命今行编译一个iava文件.在毁认情况下不会生成相应目录。
6、编写一个类,编译成.class文件乙后任意放在一个目录下,这并不等于就将该类放在包中。包名必须在源代码中,通过 package语句指定,而不是靠目录结构来确定。
那么如何访问包中的类呢?也分几种情况
1、在同一个包中直接用类名来访问,不用指定所在的包。
2、两个类不在同一个包中的情况。
解决这个问题有两种方法:
1、在使用类时指定类的路径。
2、用import语句导入该类

六、访问修饰符
修饰符分别有4个:
1.private
用 private 修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类(包括该类的子类)访问和引用。因此,private 修饰符具有最高的保护级别。例如,设 PhoneCard 是电话卡类,电话卡都有密码,因此该类有一个密码域,可以把该类的密码域声明为私有成员。
2.default
default类型的成员可以在定义它的类的内部被访问,也可以被这个包中的其他类访问。
3. protected
用保护访问控制符 protected 修饰的类成员可以被三种类所访问:该类自身、与它在同一个包中的其他类以及在其他包中的该类的子类。使用 protected 修饰符的主要作用,是允许其他包中它的子类来访问父类的特定属性和方法,否则可以使用默认访问控制符。
4. public
当一个类被声明为 public 时,它就具有了被其他包中的类访问的可能性,只要包中的其他类在程序中使用 import 语句引入 public 类,就可以访问和引用这个类。类中被设定为 public 的方法是这个类对外的接口部分,避免了程序的其他部分直接去操作类内的数据,实际就是数据封装思想的体现。每个 Java 程序的主类都必须是 public 类,也是基于相同的原因。
示例如下:

class Student{
String name;
private String idNumber;
protected String no;
public String email;
public String info(){
return"姓名:"+name+",身份证号码:"+idNumber+",学号:"+no+",邮箱:"+email;
    }
}

1、内部类中的成员只在内部类范围内才能使用外部光不能像使用自己的成员变量一样使用它们。
2、如果在内部类中使用this,仅代表内部类的对象,因此也只能引用内部类的成员。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/836691.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号