1、Person类

package com.yfs.javase;

public class Person {

	String name;//每个对象上分配 与对象绑定
int age;
char sex;
boolean married; static String country = "中国";//静态属性 与类绑定 所有对象共享 public static void baseInfo () {//静态方法 与类绑定 所有对象共享
System.out.println("舌尖上的中国...");
//method() ;//静态方法不能调用非静态方法
//String n = name;//静态方法不能访问非静态属性
String n = country;
} public void test () {//非静态方法
System.out.println("call test() ....");
name = "Tom";//访问非静态属性
String s = country;//访问静态属性
System.out.println("s = " + s);
//调用静态方法
baseInfo();
} public void method () {
System.out.println("method() ....");
} }

2.Person测试1

package com.yfs.javase;

public class PersonTest {

	public static void main(String[] args) {
Person p1 = null;
p1 = new Person();
p1.name = "张三"; Person p2 = new Person();
p2.name = "李四";
System.out.println("p1.name " + p1.name);
System.out.println("p2.name " + p2.name);
System.out.println("=========================");
p1.name = "王五"; System.out.println("p1.name " + p1.name);
System.out.println("p2.name " + p2.name); //静态属性通过类名访问
System.out.println("Person.country " + Person.country); p1.country = "日本";
System.out.println("Person.country " + Person.country);
System.out.println("p2.country " + p2.country); // Person.baseInfo();//静态属性 方法通过类访问
// p1.baseInfo();
// p2.baseInfo();
p1.test();
} }

3.测试Person2

package com.yfs.javase;

public class PersonTest1 {

	public static void main(String[] args) {
Person p1 = null;//类加载
System.out.println(Person.country);
Person.baseInfo();
//p1.name = "张三"; } }

4.Person 类2(代码块、静态代码块)

package com.yfs.javase;

public class Person {

	String name;// 每个对象上分配 与对象绑定
int age;
char sex;
boolean married;
// 代码块 执行时机 创建对象时执行
{
System.out.println("这是代码块的内容");
}
// 静态代码块 与类绑定 只执行一次
static {
System.out.println("这是静态代码块内容....");
} public Person() {
System.out.println("创建Person对象");
} public Person(String name) {
System.out.println("Person(name) ....");
this.name = name;
} public Person(String name, int age, char sex, boolean married) {
// this(name);//构造方法调用
this.name = name;
this.age = age;
this.sex = sex;
this.married = married;
System.out.println("四个参数的构造方法...");
} static String country = "中国";// 静态属性 与类绑定 所有对象共享 public static void baseInfo() {// 静态方法 与类绑定 所有对象共享
System.out.println("舌尖上的中国...");
String n = country;
} public void test() {// 非静态方法
System.out.println("call test() ....");
name = "Tom";// 访问非静态属性
String s = country;// 访问静态属性
System.out.println("s = " + s);
// 调用静态方法
baseInfo();
} public void method() {
System.out.println("method() ....");
} }

5.Person类 2  测试

package com.yfs.javase;

public class PersonTest {

	public static void main(String[] args) {
Person p1 = new Person("张三",20,'男',false); Person p2 = new Person(); Person p3 = new Person("李四");
} }

6.Person类3 (private 属性、方法、get/set方法)

package com.yfs.javase;

public class Person {
// 属性私有private
private String name = "Jack";// 每个对象上分配 与对象绑定
private int age;
private char sex;
private boolean married;
static String country = "中国";// 静态属性 与类绑定 所有对象共享
//查看对象的属性值
public String toString() {
return "name = " + name + ", age = " + age + ", sex = " + sex + ", married = " + married;
} {
name = "Tom";
}
// 设置方法 参数
// public void setAge(int age) {
// if (age > 150) {
// System.out.println("年龄不合法");
// return;
// }
// this.age = age;
// }
//
// // 获取的方法
// public int getAge() {
// return age;
// }
// 通过get set方法 设置 获取属性的值
public Person() {
System.out.println("创建Person对象");
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public char getSex() {
return sex;
} public void setSex(char sex) {
this.sex = sex;
} public boolean isMarried() {
return married;
} public void setMarried(boolean married) {
this.married = married;
} public Person(String name) {
this.name = name;
} public Person(String name, int age, char sex, boolean married) {
this.name = name;
this.age = age;
this.sex = sex;
this.married = married;
} public static void baseInfo() {// 静态方法 与类绑定 所有对象共享
System.out.println("舌尖上的中国...");
//method();静态方法不能访问
} public void test() {// 非静态方法
System.out.println("call test() ....");
method();//在同一类中私有属性 方法可以调用
} private void method() {//私有方法 范围在类的内部访问
System.out.println("method() ....");
//test();
baseInfo();
String n = name;
} }

7.Person类3测试

package com.yfs.javase;

public class PersonTest {

	public static void main(String[] args) {
Person p1 = new Person("张三",20,'男',false);
System.out.println(p1.toString()); // System.out.println("p1.name = " + p1.name);
// System.out.println("p1.age = " + p1.age);
// System.out.println("p1.sex = " + p1.sex);
// System.out.println("p1.married = " + p1.married); //p1.name = "张飞";
//修改年龄 通过方法
//p1.age = 2000;
p1.setAge(2000);
p1.setAge(28);
p1.setName("张XX"); System.out.println("p1.getName() = " + p1.getName());
System.out.println("p1.getAge() = " + p1.getAge());
System.out.println("p1状态: " + p1.toString()); p1 = new Person("张三",21,'男',false);
//p1.method();//私有方法不能访问 } }

8.单例对象 模型

package com.yfs.javase;

public class Singleton {

	private Singleton () {

	}
//通过一个对象 声明static
public static Singleton getInstance() {
Singleton s = new Singleton();
return s;
} public void eat() {
System.out.println("eat().....");
}
}

9.单例对象测试

package com.yfs.javase;

public class Test {

	public static void main(String[] args) {
//Singleton sing = new Singleton();
Singleton sing = Singleton.getInstance();
sing.eat();
} }

java新手笔记11 类的静态属性、方法(单例)的更多相关文章

  1. java新手笔记9 类的封装示例

    1.bank类 package com.yfs.javase; //类封装 public class BankCard { //属性 int balance;//默认0 实例变量 分配给每个对象一个 ...

  2. Java学习笔记(二十四):单例设计模式singleton

    为什么要使用singleton设计模式? 假设设计了一个操作数组的工具类(Tools),里面有一个锤子的方法(Hammer),如果不使用singleton设计模式,每次想调用Hammer方法都需要ne ...

  3. java新手笔记18 类比较

    1.Shap类 package com.yfs.javase; public class Shape /*extends Object */{ //默认继承object object方法全部继承 // ...

  4. java新手笔记5 类

    1.进制转换 /* 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时, 低于10万元的部分按10%提成,高于10万元的部分,可提成7.5 ...

  5. java新手笔记14 类继承示例

    1.Person package com.yfs.javase; public class Person { private String name; private int age; private ...

  6. Java 8 Collectors 类的静态工厂方法

    摘自<<Java 8 实战>> Collectors 类的静态工厂方法 工厂方法 返回类型 用于 toList List<T>  把流中所有项目收集到一个 List ...

  7. java类的静态属性值获取

    获取某个类实例的静态属性: public class ErrorCode { private String code; private String message; private ErrorCod ...

  8. JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  9. MobX基础 ----- 类的静态属性和装饰器

    当我们使用MobX的时候,首先要声明一个store, 用来保存状态,它的最基本的语法 如下: class Todo { @observable title = ""; @obser ...

随机推荐

  1. java常见机试题目(1)

    好久没写博客了,今天重新开始,发现自己学习的知识很糙,就是知道,也能说出来,但是很多知识点不清晰,不深入,所以呢,写个博客总结一些程序,理清概念. 1java中大小写字母转化,在java中存在api ...

  2. Galgame引擎编写,实现对话文本显示

    class cTalk { public: cTalk(); ~cTalk(); void Init(); void Shutdown(); void SetSpeed(int speed); voi ...

  3. 几乎每个文件里面都有 #ifdef __cplusplus extern "C" { #endif 可我没找到程序里那个地方定义了__cplusplus 啊?这又是怎么回事呢?

    我们的C语言有个进化版,叫C++,这个想必楼主知道,Keil MDK是支持C++编程的,也就是说,你可以用C语言或者C++写你的程序,都可以. 但是,有一个问题,就是头文件的问题,C语言写的头文件C+ ...

  4. [置顶] 斗地主算法的设计与实现--项目介绍&如何定义和构造一张牌

    大学期间,我在别人的基础上,写了一个简易的斗地主程序. 主要实现了面向对象设计,洗牌.发牌.判断牌型.比较牌的大小.游戏规则等算法. 通过这个斗地主小项目的练习,提高了我的面向对象设计能力,加深了对算 ...

  5. Android完美解决输入框EditText隐藏密码打勾显示密码问题

    长话短说,一共有两种方法.首先你需要在布局文件里面给EditText设置一个android:inputType="numberPassword"属性.我这里默认规定密码只能是数字了 ...

  6. JAVA_3lesson

    程序设计守则 为了增加程序的可扩展性,维护性.可以采用interface, abstract   可以抽象出来:共同的方法,属性   开发系统时,主体构架使用接口,接口构成了系统的骨架.   要遵循开 ...

  7. IOS - view之间切换

    //进入下一页 - (IBAction)Go:(id)sender { TwoViewController *twoVC = [[TwoViewController alloc] init];//这里 ...

  8. HDU 2517 棋盘分割

    题意:n刀切割棋盘 下面是8*8的棋盘,每个数字代表棋盘对应点的权值,问切割n刀后,每一块的和  的均方差最小是多少 均方差的公式需要先化简: 由上式得,均方差最小 显然是要 Xi^2 最小 d[k] ...

  9. android106 C基本数据类型

    #JNI java native interface #c的基本数据类型 * int:32位,能表示的数字是2的32次方个 * 最高位用来表示符号位,那么还剩下31位可以表示数值,所以能表示的数字就是 ...

  10. 监控mysql索引使用效率的脚本

      SELECT  t.table_schema AS db,  t.table_name   AS tab_name,  s.index_name   AS index_name,  s.colum ...