java学习之--对象与类
来源:互联网 发布:深圳市网络夏令营 编辑:程序博客网 时间:2024/05/10 22:58
类是一个模板
对象是类的实例,对像与对象名,对象名称为引用,通过对象名可以访问对象
1、类的定义
一个文件中,只允许存在一个public类,并且public类名和文件名一致,并且只有包含main()方法所在的类才能成为一个public类。
2、引用赋值
Man man1=new Man();Man man2;man2=man1;
man2与man1指向同一个对象。
3、成员方法
public class Hello {double f(int x){return x*x;}public static void main(String[] args){Hello hello = new Hello(); //x1double y= hello.f(3);System.out.println(y);}}x1行中在Hello类中的mian()函数中定义了Hello对象,这是因为main()函数是static方法的缘故。只有在static方法中可以创建本类自身的对象。
4、局部变量和成员变量
局部变量:方法内部声明,调用时分配内存,执行完后,自动释放内存而销毁。如果未被初始化使用会报错。
成员变量:类中定义的变量,如果成员变量未被初始化则系统会自动根据其所属类型进行初始化,基本类型赋值为0,引用类型变量赋值为null。
5、this引用
this是一个引用对象自身的引用。
public class Hello {int a;void setA(int a){this.a=a;}int getA(){return a;//这里的a是指this.a}public static void main(String[] args){Hello hello = new Hello();}}
6、静态变量和静态方法
静态成员变量在不创建类的对象的情况下也可以使用,它是所有对象共有的变量。通过
普通成员变量必须在创建了类的对象后才能被使用。
public class Hello {static int a;int b;public static void main(String[] args){Hello.a=10;//类变量Hello hello = new Hello();System.out.println(hello.a);hello.a=20;System.out.println(hello.a);}}
结果为:
10
20
所有的a都指向同一个a。静态方法也是类似的,可以是类方法的方式调用。
6、成员与静态方法的关系
public class Hello {int a;public void setA(int b){this.a=b;//x1}public static void main(String[] args){Hello.setA(10);}}报错,原因在于x1行,静态方法中调用了非静态的变量,a是非静态变量,是成员变量,只能创建对象,才能引用它。
静态方法只能用静态变量。
7、包导入package
javac -d . Hello.java
在命令行中输入上面内容,-d用于指定包的位置,参数-d后插入(.),则表示在当前目录下创建包。当前目录即源文件Hello.java所在的目录。
在其他包中使用定义的类,必须使用import关键字,import com.egt,Hello;
8、访问控制符
成员变量或方法:private、public、default(friendly)、protected
类:public、default(friendly)
private,表示只能类内部使用,外部不能访问
public,内外都可以访问
default(friendly),省略的访问控制符,同包可以访问,其他包中类不能访问default成员。
protected,不仅同一个包可以访问,而且位于其他包中的子类也可以访问。
9、重载
重载是指同一个类中定义了多个同名但是内容不同的成员方法。
10、构造函数
创建对象时,如果没有定义构造函数,就会调用缺省的构造函数。
构造函数的名字和类的名字是一致的,没有返回值,并且前面没有void。缺省构造函数是没有参数,也没有函数体,即不做任何事情,其唯一的功能就是创建对象。
public class Hello {public Hello(){}public static void main(String[] args){Hello hello = new Hello();}}
如果类中定义了构造函数,创建对象时,就会调用定义的构造函数,不使用缺省的构造函数。
this()实现在一个构造函数内调用其他重载的构造函数,this()必须是花括号里的第一句话。
11、静态块、实例块
静态方法比静态块执行要晚,非静态成员变量不能在静态方法和静态块中使用。static{,,,}主要用来初始化静态变量及静态方法。
public class Hello {static int a;static{System.out.print("静态块");a=10;//只能是静态变量}public static void main(String[] args){Hello hello = new Hello();System.out.print(hello.a);}}
实例块先与构造函数执行,类的实例,即创建类的对象。
public class Hello {int a;{System.out.print("实例块");a=10;}public Hello(int a){System.out.print("构造函数");this.a=a;}public static void main(String[] args){Hello hello = new Hello(30);System.out.print(hello.a);}}结果:
实例块
构造函数
30
- Java学习笔记之对象与类
- java学习之--对象与类
- java学习之面向对象编程-类与对象
- Java学习笔记之 类与对象1
- Java学习笔记之 类与对象2
- Java学习笔记之 类与对象3
- Java学习之对象的创建过程与类加载
- Java学习 类与对象
- java学习 ----- 类与对象
- java之 ------ 类与对象
- Java面向对象之 类与对象
- Java学习之对象与对象引用的区别
- 黑马程序员-java学习之面向对象(类与对象的关系)
- java学习日记_10:面向对象之理解类与对象。
- PHP学习之四:类与对象
- PHP新手之学习类与对象
- 《JAVA与模式》学习笔记之面向对象设计原则
- Json与Java对象互转之Gson学习
- 字符串错误 未找到oracle客户端和网络组件
- Ios硬解码出现kVTInvalidSessionErr = -12903Session失效的问题
- 《派派APP》实现方式、运营模式、盈利手段
- BZOJ3442: 学习小组
- UGUI血条显示
- java学习之--对象与类
- GCC的-wl,-rpath=<link_path>参数
- 数学题
- 杂项
- 纯JS实现动态时间显示代码
- VS常见问题
- NCrawler 开源爬虫框架学习
- AngularJS中关于星级评价的页面和JS
- 如何用git将项目代码上传到github