Java进阶总结2
1.static修饰符
public class StaticDemo{
/**
static 修饰符,可以修饰 字段 方法 内部类
static 修饰的成员属于类的级别 可以通过类名直接访问
static 成员随着类字节码加载的时候已经存在,优先于实例成员的存在
static 修饰的成员是共享的 访问的是一个区域(方法区)
static 修饰的成员,可以通过类名调用,也可以通过对象调用
*/
//成员变量
int age;//实例成员 只能对象来访问
static String name="马云";//类成员
//成员方法
void methodA(){//实例成员
}
static void methodB(){//类成员
System.out.println(name);
}
//入口方法
public static void main(String[]args){
//在静态方法内部访问外部成员时,外部成员必须是静态成员
//System.out.println(age);
System.out.println(name);
methodB();
//初始化一个对象
StaticDemo demo=new StaticDemo();
demo.age=12;
//对象可以访问静态成员,修改的还是方法区的内容
demo.name="马化腾";
//通过类名访问name
System.out.println(StaticDemo.name);
}
}
输出结果:
2.变量
public class FirstDemo{
//成员变量
//类成员变量 static 进行修饰
static int age;
//实例成员变量
String name;
//除去成员变量 其他的都是局部变量
void method(String names,String sex){//形参
//方法内的变量
//System.out.println(max);//无法访问max
int max=1;
}
{
//代码块变量
int x=11;
String str;//局部变量 声明
//System.out.println(str);//访问不到
}
public static void main(String[]args){
//初始化一个对象
//new FirstDemo();//匿名初始化 只能使用一次
FirstDemo demo=new FirstDemo();
System.out.println(demo.name);
System.out.println(demo.age);
}
}
输出结果:
3.包
package com;//定义当前类所有包 必须放在第一行
public class Demo1{
public static void main(String[]args){
System.out.println("我是一个包");
}
}
输出结果:
package comm;
public class Person{
//属性
public String name;
//方法
public void eat(){
System.out.println("吃饭");
}
}
package comm;
public class Student{
//属性
String sid;
public void study(){
System.out.println("我要好好学习");
}
}
//导入一个包中的类
//语法 import 类的全限定名称 包名.子包名.类名
//import comm.Person;
//将包中所有类导入 语法:包名.子包名.*;
import comm.*;
public class TestDemo{
//入口方法
public static void main(String[]args){
//初始化Person类
Person per=new Person();
//给属性赋值
per.name="尊";
per.eat();
//初始化Student类
Student stu=new Student();
}
}
输出结果:
4.封装
package com;
class Person {
//属性
String name;
//private 修饰 字段 方法 修饰的成员 只能在当前类中访问
private int age;
//通过方法给age 赋值 取值
public int getAge() {
return age;
}
public void setAge(int age) {
if (age<18) {
System.out.println("请输入正确的年龄");
return;
}
this.age = age;
}
}
public class TestDemo{
//入口方法
public static void main(String[]args){
Person person=new Person();
person.name="浪子一秋";
person.setAge(21);
/*p.age=-1; //年龄
//判断
if(p.age<18){
p.age=0;
}*/
System.out.println("姓名:"+person.name+"\n年 龄 :"+person.getAge());
}
}
输出结果:(以后使用myeclipse)
5.知识框架