实例变量(方法)与类变量(方法)
思维导图

实例变量与类变量
代码
public class Main{
public static void main(String[] args){
Student.name="袁华";//类变量可以直接用类名访问
Student s1=new Student();
s1.name="马冬梅";//类变量也可以用对象访问(不推荐)
Student s2=new Student();
s1.name="秋雅";
//类变量被类的全部对象共享
System.out.println(s1.name);//输出秋雅
System.out.println(Student.name);//输出秋雅
//实例变量属于每个对象的变量
s1.age=23;
s2.age=8;
System.out.println(s1.age);//23
System.out.println(s2.age);//8
//System.out.println(Student.age);实例变量不可以直接用类名访问
}
}
class Student{
static String name;//类变量
int age;//实例变量
}运行结果

实例方法与类方法
代码
public class Main{//实例方法、类方法与实例变量、类变量原理相似
public static void main(String[] args){
Student.printHelloWorld();//类方法直接用类名调用
Student s=new Student();
s.printHelloWorld();//类方法用对象调用
}
}
class Student{
public static void printHelloWorld(){//类方法
System.out.println("Hello world");
System.out.println("Hello world");
}
}运行结果

构造方法
代码
public class Main{//构造方法
public static void main(String[] args){
Student s1=new Student(1,2);
System.out.println(s1.x+" "+s1.y);
Student s2=new Student();
Student s3=new Student(0.5);
System.out.println(s3.z);
}
}
class Student{
int x,y;
double z;
Student() {
System.out.println("我是一名学生");
}
Student(int a,int b){
x=a;
y=b;
}
Student(double c){
z=c;
}
}运行结果

this关键字
代码
public class Main{
public static void main(String[] args){
Tom t=new Tom();
t.f();
System.out.println(t.y);//15
}
}
class Tom{
int x=10,y;
void f(){
int x=5;
y=x+this.x;
}
}运行结果

Java数组常用操作库
代码
import java.util.Arrays;
public class Main{
public static void main(String[] args){
int a[]={3,1,4,6,2,5};
System.out.println(a.length);//数组长度
System.out.println(a);//数组引用带[I@
System.out.println(System.identityHashCode(a));//数组引用不带[I@
System.out.println(Arrays.toString(a));//列表形式输出数组
System.out.println(Arrays.binarySearch(a,4));//数组查找某个元素(返回数组下标/负数)
System.out.println(Arrays.binarySearch(a,21));
Arrays.sort(a);//排序(从小到大)
for(int i:a){//遍历数组的循环
System.out.print(i+" ");
}
System.out.println();
}
}运行结果

可变参数
代码
public class Main{//可变参数
public static void main(String[] args){
A a=new A();
a.f(1,2,3,4,5);
a.g(2.0,1,2,3,4,5);
}
}
class A{
void f(int ...x){
int sum=0;
for(int i=0;i<x.length;i++){
sum+=x[i];
}
System.out.println(sum);
}
void g(double a,int...x){
int sum=0;
for(int i=0;i<x.length;i++){
sum+=x[i];
}
System.out.println(sum*a);
}
}运行结果

对象的组合
代码
public class Main {
public static void main(String args[]) {
Circle circle = new Circle();
circle.setRadius(10);//设置半径
Circular circular = new Circular();
System.out.println(circle);//引用带类名+@符号
System.out.println(circular.bottom);//没有赋值,引用为null
circular.setHeight(5);//设置高
circular.setBottom(circle);//把圆的对象传入
System.out.println(circle);
System.out.println(circular.bottom);//赋值了,引用与circle的相同
System.out.println(circular.getVolme());
circle.setRadius(20);//修改半径
System.out.println(circular.getBottomRadius());
circle = new Circle();//重新new,circle引用会变化
System.out.println(circle);
System.out.println(circular.bottom);//circular.bottom引用不变
}
}
class Circle {
double radius,area;
void setRadius(double r) {
radius=r;
}
double getRadius() {
return radius;
}
double getArea(){
area=3.14*radius*radius;
return area;
}
}
class Circular {
Circle bottom;
double height;
void setBottom(Circle c) {
bottom = c;
}
void setHeight(double h) {
height = h;
}
double getVolme() {
if(bottom == null)
return -1;
else
return bottom.getArea()*height/3.0;
}
double getBottomRadius() {
return bottom.getRadius();
}
public void setBottomRadius(double r){
bottom.setRadius(r);
}
}运行结果

0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复