package lsg.ap.april4th2;
 /*
     知识点:1.Getter and Setter 的应用
        2.局部变量与成员变量(也可叫做全局变量)
        3.Static关键字的用法
          a.成员变量被static修饰后的所有类的共享属性
          b.方法被static修饰之后,在本类内调用的类名省略问题;以及不用Static,即使在本类内也必须先实例化
        4.This关键字的用法
     this:是当前类的对象引用。简单的记,它就代表当前类的一个对象。

     注意:谁调用这个方法,在该方法内部的this就代表谁。

     this的场景:
         解决局部变量隐藏成员变量
 */
 //定义学生类
 class Person
 {
     //姓名
     private String name="刘德华";
     //年龄
     private int age=45;
     //所有对象共享的属性用static修饰,可以直接被类名直接调用
     static String country = "中国";

     //姓名获取值
     public String getName()
     {
         return name;
     }

     //姓名设置值
     public void setName(String name)
     { //name = "林青霞";
         //name = name; //变量的使用规则:就近原则
         //这里是类名,目前还没有说过类似的用法,所以这个是有问题的
         //这里的调用只能通过对象名
         //这个对象如果存在,它应该代表的是Student的一个对象。
         //那么,谁能够代表当前类的对象呢? java就提供了一个关键字 this
         //Student.name = name;
         this.name = name;
     }

     //年龄获取值
     public int getAge()
     {
         return age;
     }

     //年龄赋值
     public void setAge(int age)
     {
         this.age = age;
     }
 }

 //测试类

 public class PersonClass
 {

     public void show()//定义非静态方法,必须经过实例化后才能调用

     {
         System.out.println("哈哈");
     }
     public static void show2()//但是当以静态方法后,可以直接用 类名.函数名
                              //调用,在本类内,类名可以忽略,这就是常见的public static...的由来
     {
         System.out.println("哈哈你妹");
     }
     public static void main(String[] args)
     {
         //创建人对象
         Person s1= new Person();
         Person s2= new Person();
         PersonClass s3=new PersonClass();
         s3.show();//不能直接写show(),因为是非静态方法,必须实例化后通过实例调用
         show2();
         //给成员变量赋值
         s1.setName("林青霞");
         s1.setAge(27);
         s1.country="美国";//静态变量的值是共享的,所以以最后一次修改的为准,即全变成了日本
         s2.country="日本";//静态属性最好用类名直接调用,要不会警告的哦
         //Static 与Final是不同的哦,Static类似C语言的Extern,Final类似Define
         //Static定义的变量的值仍然是可以修改的,但是Final指定在定义的时候赋值一次
         //获取数据
         System.out.println(s1.getName()+"---"+s1.getAge());//直接用类名.调用Name和
                                                             //        age是绝对不可以的
         System.out.println(s2.getName()+"---"+s2.getAge());
         System.out.println(s1.country);//静态属性最好不要用类的实例调用,会警告的
         System.out.println(s2.country);
         System.out.println(Person.country);//Person.后面只提示country,
                                           //不会提示name和age哦
     }

 }

Java基础(42):Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用)的更多相关文章

  1. js中定义变量加var与不加var的区别?

    var 不一定是用来定义局部变量的 jscript的全局变量和局部变量的分界是这样的:                  过程体(包括方法function,对象Object o ={})外的所有变量不 ...

  2. Java中主类中定义方法加static和不加static的区别

     Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用(类名.方法),后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 ...

  3. 简单练习题2编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能

    编写Java应用程序.首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”.“取款”和“余额查询”.其次, 编写一个主类,在主类中测试Account类的 ...

  4. Java 基础常见知识点&面试题总结(中),2022 最新版!| JavaGuide

    你好,我是 Guide.秋招即将到来,我对 JavaGuide 的内容进行了重构完善,公众号同步一下最新更新,希望能够帮助你. 上篇:Java 基础常见知识点&面试题总结(上),2022 最新 ...

  5. “全栈2019”Java第八十七章:类中嵌套接口的应用场景(拔高题)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. 第4节:Java基础 - 必知必会(中)

    第4节:Java基础 - 必知必会(中) 本小节是Java基础篇章的第二小节,主要讲述抽象类与接口的区别,注解以及反射等知识点. 一.抽象类和接口有什么区别 抽象类和接口的主要区别可以总结如下: 抽象 ...

  7. Java基础扫盲系列(-)—— String中的format

    Java基础扫盲系列(-)-- String中的format 以前大学学习C语言时,有函数printf,能够按照格式打印输出的内容.但是工作后使用Java,也没有遇到过格式打印的需求,今天遇到项目代码 ...

  8. 黑马程序员——JAVA基础之简述面向对象,类,变量,匿名对象

    ------- android培训.java培训.期待与您交流! ---------- 面向对象: 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将 ...

  9. Java基础-类加载机制与自定义类Java类加载器(ClassLoader)

    Java基础-类加载机制与自定义类Java类加载器(ClassLoader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于类加载器的概念和分类我就不再废话了,因为我在之前的笔 ...

随机推荐

  1. pdo封装类

    <?php //http://www.imavex.com/php-pdo-wrapper-class/ class db extends PDO { private $error; priva ...

  2. 关于Java中文乱码与日期格式

    关于Java中文乱码与日期格式 Java中文乱码的问题其实很普遍了,首先,一般不会在Windows平台下面出现,同时,一般在Tomcat应用服务器下也都正常,但是到了WebSphere,Weblogi ...

  3. lisp分支

    newLISP http://www.ituring.com.cn/article/110968 clojure             http://clojure.org/             ...

  4. jquery rotate

    网上发现一个很有意思的jQuery旋转插件,支持Internet Explorer 6.0+ .Firefox 2.0 .Safari 3 .Opera 9 .Google Chrome,高级浏览器下 ...

  5. 使用dnspod进行简单的HTTP dns解析(防劫持)

    https://www.dnspod.cn/httpdns/guide https://www.dnspod.cn/misc/D%2B免费版本接口说明.pdf 最简单的get接口去请求dnspod提供 ...

  6. Simplest way to serve static data from outside the application server in a Java web application

    tomcat service.xml <Context docBase="/path/to/images" path="/images" /> re ...

  7. 【Android测试】【第五节】LogCat——命令行

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4684123.html 前言 上一篇将的是如果在eclips ...

  8. iOS开发教程之:iPhone开发环境搭建

    安装条件: 硬件:一台拥有支持虚拟技术的64位双核处理器和2GB以上内存的PC. 注意:运行MAC OS,需要电脑支持虚拟技术(VT),安装时,需要将VT启动,在BIOS中开启. 软件: Window ...

  9. LightOj1074 - Extended Traffic(SPFA最短路)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1074 题意:有n个城市,每个城市有一个拥堵值a[i],m条单向路u到v,从u到v所需时 ...

  10. CentOS6.7搭建蜜罐dionaea

    yum -y install epel-release wget tar git autoconf* libtool-* mkdir /opt/dionaea 1.安装liblcfg软件.git cl ...