java基础-面向对象(上)
来源:互联网 发布:ug安装java虚拟机 编辑:程序博客网 时间:2024/05/16 00:45
一,注意事项:
(1)java保存的文件名必须与类名一致;如果文件中只有一个类,文件名必须与类名一致;一个Java文件中只能有一个public类;如果文件中不止一个类,文件名必须与public类名一致;如果文件中不止一个类,而且没有public类,文件名可与任一类名一致。
(2)对一个类有三种常见成员:构造器,成员变量,方法。
(3)static修饰的成员(静态)不能访问没有static修饰的成员(非静态);static修饰的变量和方法属于类本身,被称为类变量,类方法,可以通过类来直接调用,最好不要通过对象来调用;static修饰的方法不能使用this引用(思考下为啥),只能创建一个新的对象来引用静态方法。
(4)this关键字可以代表任何对象,当this出现在某个方法体中,它代表的对象不确定,但它的类型是确定的,它所代表的对象只能是当前类;只有当这个方法被调用时,它所代表的对象才能被确定下来,谁在调用它,this就代表谁。可以说this关键字总是指向调用它的对象。两个默认用途:构造器中引用正在初始化的对象,在方法中引用调用该方法的对象。大部分时候,一个方法访问该类中的其他方法,不用加this关键字(默认加了)效果一样。
(5)类:public,final,abstract,类名首字母大写,其他小写。
(6)构造器:用于创建实例,构造器名必须与类名相同,自己不写,系统会给默认构造器。
二,方法:
(1)static修饰符决定了方法属于类还是对象。
(2)传入方法的参数,是实际参数的副本。执行方法时,形参先初始化,实参值再赋给形参。注意引用类型的参数传递,传入的参数是实际对象地址值。
(3)在最后一个形参类型后增加三个点(...),表明该形参可接受多个参数值,形参个数可变的参数本质就是一个数组参数,只能有一个且位于形参列表的最后。
(4)递归方法一定要向已知方向递归。
(5)方法重载:一个类里方法名相同,形参列表不同;返回值不能用于区分重载方法。
三:成员变量和局部变量:
(1)成员变量分为类变量和实例变量,局部变量在方法中,或是形参,或在代码块中,二者存在时间也不同。
(2)声明成员变量时可以不初始化(被final修饰且没有static的必须显式赋值),成员变量在加载类或创建实例时,系统自动分配内存,指定初始值而局部变量除了形参必须显式初始化。
(3)成员变量可以被public,protect,private,static,final等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型;成员变量存储在堆,局部变量存储在栈
(4)java 中当局部变量和成员变量的变量名相同时,以局部变量为主,用this引用成员变量。
四:封装
(1)访问控制符:
对类中的一个成员
(2)对private修饰的成员,最好使用setter和getter方法进行操作和访问;外部类只有两种访问控制级别:private和default。
(3)package packagename;语句作为第一行非注释代码,意味着该源文件里的所有类属于这个包,包名一般选择全小写字母构成;编译Java时使用javac -d . xxx.java 会在当前路径下生成相应的文件结构和xxx.class文件。
(4)同一个包下的类可以自由访问,不同包下的类可以使用完整类名或使用import语句访问(省略写包名);import static package.class.fieldname|methodname 可以导入指定类的静态变量或方法(省略写类名);java默认为所有源文件导入了java.lang包下的所有类。
五,构造器:
(1)修饰符只能是控制修饰符,无返回值。
(2)构造器也可以被重载,与类中方法一样;可以再构造器B中使用构造器A的初始化代码(this关键字必须在构造器执行体的第一句):
package easytest;class Student { public String name; private int age; float score; private Student(){} private Student(String name,int age) { this.name=name; this.age=age; } Student(String name,int age,float score) { this(name,age); this.score=score; }}public class Easytest{ public static void main(String args[]){ Student xc=new Student("xuchen",23,(float)100.0); System.out.println(xc.score); }}
- java基础3--面向对象(上)
- Java基础面向对象(上)
- java基础-面向对象(上)
- Java基础之面向对象(上)
- java面向对象上:java基础语法
- java基础3--面向对象(上)(内部类)
- java基础3--面向对象(上)(综合练习题)
- java基础3--面向对象(上)--要点总结
- 黑马程序员---java基础---04面向对象(上)
- java基础之面向对象的基本概念(上)
- Java基础-面向对象小知识(上)
- Java基础学习笔记——面向对象(上)
- 第二天----Java基础---面向对象上
- 第三天----Java基础---面向对象上
- Java基础3_面向对象上
- Java基础3_面向对象上
- 黑马程序员 Java基础 ---> 面向对象(上)
- 黑马程序员-Java基础:面向对象(上)
- java封装
- 建立github本地仓库与远程仓库
- 二叉树---待完善
- java 注解的几大作用及使用方法详解
- Spring中基于配置文件的方式来配置AOP
- java基础-面向对象(上)
- Android控件系列之RadioButton&RadioGroup
- mybatis-映射器-resultMap结果集映射2-association一对一级联
- MyEclipse8.5破解方法
- js的数据类型和变量:
- 机器学习笔记十六:错误来源Bias和Variance
- PHP与webserver
- C白白的游戏服务器开发笔记:创建开源项目LCServer
- 64位和32位的寄存器和汇编的比较