构造方法、package、静态属性、访问控制修饰符知识点

原创 2017年03月24日 09:52:33

1.构造方法的重载:

                                  在一个类的定义中出现多个方法名相同,参数列表不同的多个同名方法

                                  共存的现象,作为方法的一个特例称为构造方法的重载。

                          

                          例如:

   

packageStudent;

 

classStudent1{

Stringname;

chargender;

public Student1(String n,char g){

name=n;

gender=g;

}

public Student1(String n){

name=n;

gender='m';

}

public Student1()

{

gender='m';

}

publicString output()

{

Strings=null;

s="姓名:"+name;

if(gender=='f')

s=s+"性别:女";

else

s=s+"性别;男";

returns;

}

}

 

publicclass Student {

publicstatic void main(String[] args) {

Student1 s1=new Student1("张三");

System.out.println(s1.output());

Student1 s2=new Student1("李四",'f');

System.out.println(s2.output());

}

}

2.变量的作用域:

                              (1)属性不管在何处声明,它的作用域都是整个类。

                              (2)局部变量必须先声明再使用,在使用前必须给定初始值,局部变量的       

                                         作用域范围是从定义的那一点到距离它最近的大反括号。

                              (3)当局部变量和属性重名时,在局部变量的作用域内局部变量屏蔽掉属                      

                                         性。

 

3.this关键字:

                            当局部变量和属性重名时,在局部变量的作用域内局部变量屏蔽掉属性。

                 例如:

                            

 

publicclass RectangleTest3 {

 

publicstatic void main(String[] args) {

Rectangleobj = new Rectangle(2, 3);

System.out.println("矩形的长是:" + obj.length + "举行的宽是:"+ obj.width);

intresult = obj.area();

System.out.println("矩形的面积是:" + result);

}

 

}

classRectangle {

intlength = 1;

intwidth = 1;

 

publicint area() {

inttemp = length * width;

returntemp;

}

 

publicRectangle(int length, int width) {

this.length= length;

this.width= width;

}

 

publicRectangle() {

length= 5;

width= 5;

}

}

this关键字代表了当前类对象的一个引用,在属性前面加上this.,利用this.可以调用当前对象的方法和属性

this的用法:

(1)利用this调用当前对象的方法和属性。

(2)一个类的若干个属性可以相互调用,当一个构造方法需要调用另一个构造方法  

         时应使用this(实参列表)同时这条语句应该是整个构造方法中的第一条语

         。在利用this调用构造方法时根据实参的个数匹配调用的是哪个其他的构造

        方法。

(3)当方法需要返回当前正在讨论的对象时,可以采用return this的形式。

4.包(package):

                             第一个包:

packagecom.fancy;

 

publicinterface Shapeable {

doublecalcArea();

doublecalcGirth();

}

   第二个包:

packagecom.fancy.aaa;

importcom.fancy.*;

 

classCircle implements Shapeable{

privatedouble radius;

publicCircle(double radius){

this.radius=radius;

}

publicdouble calcArea()

{

returnMath.PI*Math.pow(radius, 2);

}

publicdouble calcGirth()

{

return2*radius*Math.PI;

}

}

 

 

publicclass Ex4 {

publicstatic void main(String[] args) {

CircleaCircle=new Circle(1);

System.out.println("构建半径为1的圆");

System.out.printf("圆的面积:%.2f",aCircle.calcArea());

System.out.printf("\n圆周长为:%.2f",aCircle.calcGirth());

}

 

}

注意:在一个源程序文件中允许定义多个类,只有与文件名(不含扩展名)相同的类才能声明为public,因此,一个源文件只能有一个public。通常,包含main方法的主类声明为public

导入包的语句:import 包名.类名;            import 包名.*;

 

如果在一个程序中涉及到两个包中的同类名,创建此类对象时需要明确指出该类所属的包:

包名.类名.对象名=new 包名.类名.对象名

5.访问控制修饰符:

                                    

publicclass AA {

privateint x;

publicdouble y;

protectedchar z;

String w;                                   //缺省属性

public AA(int a,double b,char c,String d){  //public修饰的构造方法

x=a;y=b;z=c;w=d;

}

private int getX(){                         //private修饰的访问器

returnx;

}

public double getY()                        //public修饰的访问器方法

{

returny;

}

protected char getZ()                       //protected修饰的访问器方法

{

returnz;

}

String getW()                               //缺省修饰符修饰的访问器方法

{

returnw;

}

}

 

publicclass ATest{

publicstatic void main(String args[]){

AAobj=new AA(1,1.11,'q',"hello");

obj.x=2;

obj.getX();

obj.y=2.22;

obj.getY();

obj.z='e';

obj.getZ();

obj.w="lala";

obj.getW();

 

}

}

 

 

注意:所谓的类内是指类定义的“{”和“}”之间,在类内可以直接使用被任何访问控制修饰符的属性和方法。

             所谓的允许访问和修改是指创建该类对象,并通过对象调用其属性。

             所谓的访问器方法就是指setter方法和getter方法,访问器方法的命名是setget加上属性的名字,同时属性名字的第

                  一个字母要大写。

                                                set方法为属性赋值:publicvoid setXX(类型 形参){

                                                                                        this.属性=形参;

                                                                                                                                                                              }

                                                                                       这里的形参的数据类型要和属性的数据类型一致。

                      get方法获取属性值:public 类型 getXX(){

                                                                 return 属性;

                                                                               }

                                        这里返回值类型要和属性的数据类型一致。

6.static修饰符:

                               示例代码:

package static修饰符;

 

classEmp {

publicString name;

privatedouble salary;

staticdouble minSalary;

 

publicString getName() {

returnname;

}

 

public  void setName(String n) {

name= n;

}

 

publicvoid setSalary(double s) {

if(s >= minSalary)

salary= s;

else

salary= minSalary;

}

 

publicstatic double getMinSalary() {

returnminSalary;

}

 

publicstatic void setMinSalary(double min) {

minSalary= min;

}

}

 

publicclass EmpTest {

 

publicstatic void main(String[] args) {

Emp.setMinSalary(600);

Empe1=new Emp();

    e1.name="huangbowen";

System.out.println(e1.name+"中读取出的员工最低工资:" + e1.getMinSalary());

Empe2 = new Emp();

System.out.println("e2中读取出的员工最低工资:" + e2.getMinSalary());

}

 

}

注意:(1) 这里的static称为静态修饰符。它所修饰的属性称为静态属性。

             (2)静态属性是和类相关的,而不是和具体对象相关的。

             (3)static也可以修饰方法,被static修饰的方法称为静态方法,是属于类的方法,而不是属于具体对象的方法,也称为类 

        方法。

             (4)静态方法可以用类名来调用,静态方法是随着类的创建而创建的。

             (5)静态方法不能操纵非静态属性。非静态方法可以操纵静态属性。

 

             调用静态方法和静态属性的两种调用方式:

                                                                               (1)类名.静态属性或静态方法

                                                                               (2)对象名.静态属性或静态方法

             静态初始化器:

                                         语法结构:static{

                                    静态属性名=初始值;

                                   }

            静态初始化器的作用是为整个类的属性即静态属性完成初始化工作。静态初始化器语句组中的语句当满足下列条件时被执行且只被执行一次:首次生成该类对象时(即用new创建对象时)或首次通过类名访问静态属性时。

 

            静态初始化器和构造方法的区别:

                                   (1)静态初始化器是对类进行初始化,构造方法是对类的对象进行初始化

                                   (2)静态初始化器在其所属的类导入内存时被调用,构造方法在用new创建对象时调用

                                   (3)静态初始化器是一组语句不是方法,构造方法是特殊的方法

Java:构造函数的访问修饰符

构造方法可以处于public、protected、private和默认四种访问级别之一。 public public这里就不多说了 private 当构造方法为private级别时,意味着只能...
  • wangyanguiyiyang
  • wangyanguiyiyang
  • 2015年11月17日 10:31
  • 2335

Kotlin-可见性修饰符

可见性修饰符用于其修饰对象的适用范围。在Kotlin中,存在private、protectedinternal以及 public等四种修饰符,它们可用于修饰类、对象、接口、构造器、函数、属性、以及属性...
  • IO_Field
  • IO_Field
  • 2016年11月18日 13:59
  • 2297

TypeScript学习笔记之 类

传统的JavaScript程序使用函数和基于原型(prototype)的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员来讲就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来的。 ...
  • yuzhiqiang_1993
  • yuzhiqiang_1993
  • 2017年01月09日 17:42
  • 5671

黑马程序员————OC的构造方法与分类知识点总结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- OC语言构造方法: 用来初始化对象的方法,对象方法,以减号开头 ...
  • whymerain
  • whymerain
  • 2015年03月19日 13:50
  • 238

Scala 类的主构造方法中属性修饰符的作用与区别

众所周知,Scala 是运行于Java平台(Java虚拟机)的,那么Scala程序编译之后会生成对应的字节码文件,我们将字节码文件反编译成Java文件即可知Scala 为我们都做了什么. Scal...
  • a1837634447
  • a1837634447
  • 2018年01月13日 11:12
  • 26

Java知识点整理:第五章:类的声明,构造方法,方法,继承中的构造器,对象实例化过程

1.类的声明:            类是由对象抽象出来的.类是对象的模板,是用来描述对象的.            例如:书:书号  书名编号 作者  价钱...           1....
  • junlei0426
  • junlei0426
  • 2016年11月09日 22:25
  • 382

java构造方法 静态变量小知识

一 构造方法 1 作用 :对对象的属性(成员变量)进行初始化的 2 写法: (1)构造方法的方法名与类名相同(大小写必须一样) (2) 没有返回值类型(连void都不写) (3)没...
  • qq_40843902
  • qq_40843902
  • 2017年12月06日 22:26
  • 33

JAVA知识点(类、方法、构造器、权限、修饰符、数据类型等知识点)

知识点: 一、抽象: 1、抽象类不能用于创建示例,只能当做父类被其他子类继承。 2、抽象方法和空方法体不是一个概念。 例如:public abstract void test();是一个抽象方法,它没...
  • xiaozhen_12
  • xiaozhen_12
  • 2017年04月19日 17:32
  • 259

面向对象,类的组合关系,继承,实现,方法重写,方法重载,this的使用,抽象方法和抽象类的比较,父类构造方法存在的意义,多态的是用和解析,各种访问修饰符

基本数据类型 也叫值类型。引用数据类型--引用类型 This。只能出现在方法中 ,this代表当前对象的引用。 匿名对象 : new 类名() Anonymous:匿名 Object 有索引...
  • boss_way
  • boss_way
  • 2017年10月25日 12:15
  • 135

继承与访问修饰符知识点

  • 2010年09月19日 15:47
  • 35KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:构造方法、package、静态属性、访问控制修饰符知识点
举报原因:
原因补充:

(最多只允许输入30个字)