java构造函数修饰符

今天看了剑指offer中的第二章-面试需要的基础知识,对其中的一段C#面试代码,比较感兴趣,想着能否给改成java,结果没改成,出现了问题,本文是针对这一点来总结一下,下面是C#与java代码,但是在eclipse环境下,java代码如此改写,编译器提醒构造函数有问题,究其原因,问题是由java的构造函数前的访问修饰符public与特殊修饰符static所导致的。

java 构造函数,可以被访问修饰符修饰,而不能被特殊修饰符修饰;(在编译器经过测试)

访问修饰符: public (最常用,其他类的任何位置都可以访问)

protected(能够在同一包中被子类访问)

什么都不写,""(能够被同一包里的类访问)

private(经常使用的单例模式中)

特殊修饰符: static (静态) final(最终) abstract(抽象) synchronized(同步) 这些都不能够放在构造函数前使用

 1 class A{
 2      public A(String text){
 3           console.writeln(text);
 4      }
 5 }
 6
 7 class B(){
 8      static A a1=new A("a1");
 9      A a2=new A("a2");
10
11      static B(){
12           a1=new A("a3");
13      }
14
15      public B(){
16           a2=new A("a4");
17      }
18 }
19 class Program{
20      B b=new B();
21 }

 1 public class A {
 2     public  A(String aStr){
 3         System.out.println("A 构造函数 初始化:"+aStr);
 4     }
 5 }
 6
 7 class B {
 8     static A a = new A("a1");
 9     A aa = new A("a2");
10
11     static B() {
12         a = new A("a3");
13     }
14
15     public B() {
16         aa = new A("a4");
17     }
18     public static void main(String[] args) {
19         B b=new B();
20     }
21 }

java

时间: 2024-12-14 20:21:50

java构造函数修饰符的相关文章

JAVA访问修饰符 构造函数的问题(转)

JAVA访问修饰符 构造函数的问题 java访问修饰符-限定符总结(类比C#) JAVA访问修饰符----------[public | default | protected | private ] public: 完全开发protected: 同包及子类访问default(无): 同包访问private: 只能本类访问 JAVA用于类的修饰符(2个)和限定符(2个):---------------public: 完全开发default(无) : 同包访问 abstract: 指定为抽象类fi

Java的修饰符

转自:http://blog.csdn.net/manyizilin/article/details/51926230#L42 修饰符: 像其他语言一样,Java可以使用修饰符来修饰类中方法和属性.主要有两类修饰符: 访问修饰符:default, public , protected, private 非访问修饰符:final, abstract, strictfp 修饰符一般使用在一个语句的前端,例: [html] view plain copy public void Pig{ int a 

Java高手真经_编程基础卷——读书笔记(9)——Java类修饰符

Java修饰符 一.简述 访问控制修饰符:public .默认无修饰符.private.protected 其他修饰符:abstract.static.final.native public:意思是公开的,使用范围最广 默认无修饰符,什么也不写:在同一个包内可见 private :私有的 protected:受保护的 abstract:抽象的 static:静态的 final:最终的 native:本地的 sysnchronized:同步 以上是修饰符子字面意思,但其真实的意义也差不多少.下面就

java类修饰符

java的修饰符有:权限修饰符:public.protected.default.private                修饰符:abstract.static.final public   使用对象:最广,类.接口.变量.方法    protected使用对象:变量.方法 注意:不能修饰类(外部类)    default  使用对象:类.接口.变量.方法.(即缺省,什么也不写)    private  使用对象:变量.方法 注意:不能修饰类(外部类) abstract使用对象:类.接口.

java常见修饰符总结

1.访问修饰符:public 对外公开  所有是类都能访问 protected 受保护的 子类及其同一个包中的类可以访问 默认的:没有访问修饰符,只向同一个包中的类公开 private : 私有的 只有类本身可以访问,不对外公开 2.abstract :可以用来修饰类和成员方法 A:用该修饰符修饰的类表示抽象类,抽象类位于继承树的抽象层,该类不能被实例化,即不允许创建抽象类本身的实例 B:用该修饰符修饰的方法表示抽象方法,该方法没有方法体,抽象方法是用来表述系统具有什么功能,但不提供具体的实现.

java访问修饰符

了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变量.方法所有类都可见. 2)protected:其修饰的类.类变量.方法在同包中(包括同类)可见,不同包的子类可见. 3)default:默认修饰符,即在定义类.类变量或方法时不加任何修饰符.其仅在同包(包括同类)中可见. 4)private:最低访问权限,其修饰的类.类变量和方法仅在本类中可见. ps:pr

C#和JAVA 访问修饰符

JAVA ----------------------------------------------- 访问修饰符        描述 ----------------------------------------------- private            只能在本类内使用(可见) 不写修饰符    表示该成员只能在同一个包内才能互相访问 protected        也是同包内访问,区别上面的地方在于:除了同包,其他包的子类也可以访问 public             

Java访问修饰符(转)

类.方法.成员变量和局部变量的可用修饰符 修饰符 类 成员方法 构造方法 成员变量 局部变量 abstract(抽象的) √ √ - - - static (静态的) - √ - √ - public(公共的) √ √ √ √ - protected(受保护的)   √ √ √ - private(私有的) - √ √ √ - synchronized(同步的) - √ - - - native(本地的) - √ - - - transient(暂时的) - - - √ - volatie(易失

Java访问修饰符(访问控制符)

Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private boolean myFlag; static final double weeks = 9.5; protected static final int BOXWIDTH = 42; public static void main(String[] arguments) { // body of meth