A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一个类的公有成员和私有成员有什么区别?

公有成员不仅可以被类自身访问,还可以被所有其他类访问

私有成员无法从该类的外部访问该类的内部成员,只能被该类自身访问和修改,也不能被其他类访问或者引用

什么是方法重载?什么是方法重写?

重载是指一个类内有多个相同名称的方法,这多个同名方法如果参数个数不同,或者是参数个数相同但是参数类型不同。则这些同名方法就有不同的功能。

重写:在子类中定义名称,参数个数,与类型均在父类中完全相同的方法,用以重写父类中同名方法的功能。

区别:

1>都要求方法名相同,都可以用于抽象方法和非抽象方法之间
2>重写要求参数列表必须一致,而重载要求参数列表必须不一致
3>重写要求返回类型必须一致,而重载对此不做限制
4>重写只能用于子类重写父类的方法,而重载用于同一个类的所有方法(包括从父类中继承而来的方法)
5>重写对方法的访问修饰符有特殊要求,而重载对此不做限制
6>父类的一个方法只能被同一个子类重写一次,而一个方法在所在的类中可以被重载多次
7>构造方法能被重载,但不能被重写

一个类的构造方法的作用什么?构造方法的特性是什么?

构造函数是为了创建对象而存在,并为对象属性初始化的特殊方法。

特性:

1>构造方法的名称必须和类名相同;
2>构造方法没有返回类型约定,可以有参数列表,只是为了创建对象而存在,并为对象属性初始化的特殊方法;
3>当我们创建一个类的时候,如果我们不手动添加构造方法,那么系统会自动为我们提供一个默认的不带参的构造方法;       如果我们手动添加了构造,则系统不会提供默认的构造了。
4>构造方法可以重载,通过调用不同的构造方法来表达对象的多种初始化行为。构造方法的重载是指定义多个形式参数列       表不同的构造方法。

静态变量和实例变量的区别?

静态变量是指用static关键字修饰的成员变量,他在类装载的时候就进行了初始化,并且永驻内存,可通过类名来访问,不需创建对象;实例变量是指没有用static关键字修饰的成员变量,它只有在类创建对象的时候才初始化,它只能在类创建对象后,通过对象才可以访问。

静态方法和实例方法的区别?

静态方法属于整个类的方法,所以静态方法可以被实例对象和类调用,实例方法属于某个具体对象的。必须先创建实例对象,然后通过实例对象调用实例方法。

在一个静态方法内可以调用一个非静态成员吗?为什么?

不可以。因为静态方法属于整个类的,所以他不能操纵某个对象的成员,所以静态方法只能访问静态变量和静态方法。

什么是静态化初始器?其作用是什么?他与构造方法的区别是什么?

静态化初始器是由关键字static修饰的一对{}括起来的语句组。

作用与足区别:

1.构造方法是对每个新建的对象进行初始化,而静态化初始器是对类自身进行初始化。

2.构造方法是在new运算符创建新对象时由系统自动调用,而这个是在它所属类加入内存时被系统调用执行的。

3.用new创造多少个对象就执行多少次构造方法,而这个只在他所属的类被加载进内存时执行一次。

4不同于构。造方法,这个不是方法,因而没有方法名,返回值,和参数。

最后写个学生类

package code_class;

public class define_class {

        public static void main(String[] args) {
                // TODO 自动生成的方法存根
               
                Student s1 = new Student();
                s1.setName("张三");
                s1.setAge(23);
                System.out.println(s1.getName()+"..."+s1.getAge());
                System.out.println("-----------------------------------");
                Student s2 = new Student("里斯",24);
                System.out.println(s2.getName()+"..."+s2.getAge());               
        }

}

class Student{
        private String name;    //私有属性  姓名 成员属性
        private int age;                //私有属性  年龄  成员属性
       
        public Student() {}  //空参构造
       
        public Student(String name,int age) {  //有参构造
                this.name = name;      //this的作用是为了区分成员变量和局部变量
                this.age = age;
        }
       
        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;
        }
}

---------------------
【转载,仅作分享,侵删】
作者:zhiguo98
来源:CSDN
原文:https://blog.csdn.net/yanzhiguo98/article/details/88423849
版权声明:本文为博主原创文章,转载请附上博文链接!

1 个回复

倒序浏览
奈斯,感谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马